update ctai_textedit输出更多内容,完善流式和非流式

This commit is contained in:
JackLee 2025-02-26 21:40:56 +08:00
parent 0f870f984c
commit 396e19619b
20 changed files with 4836 additions and 4602 deletions

View File

@ -83,7 +83,8 @@
"regex": "cpp", "regex": "cpp",
"ranges": "cpp", "ranges": "cpp",
"any": "cpp", "any": "cpp",
"qcloseevent": "cpp" "qcloseevent": "cpp",
"qtextbrowser": "cpp"
}, },
"editor.gotoLocation.alternativeDeclarationCommand": "editor.action.revealDefinition", "editor.gotoLocation.alternativeDeclarationCommand": "editor.action.revealDefinition",
"editor.gotoLocation.alternativeDefinitionCommand": "editor.action.revealDefinition", "editor.gotoLocation.alternativeDefinitionCommand": "editor.action.revealDefinition",

Binary file not shown.

View File

@ -1,66 +1,59 @@
# ninja log v6 # 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 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 4058 8712 7620828272053173 CMakeFiles/ctai.dir/src/ctai_cmd.cpp.obj 80d6964d23a3e9c5
4063 8329 7620828272105475 CMakeFiles/ctai.dir/src/ctai_tabbar.cpp.obj 41b68d110b3c0daf 4063 8329 7620828272105475 CMakeFiles/ctai.dir/src/ctai_tabbar.cpp.obj 41b68d110b3c0daf
284 3644 7622668721969345 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195 4533 17016 7622792483699237 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
4466 16852 7622698141754299 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
262 484 7622684576644682 qrc_res.cpp 9794859fafc6825 262 484 7622684576644682 qrc_res.cpp 9794859fafc6825
218 7564 7621848927853957 CMakeFiles/ctai.dir/src/sui.cpp.obj e1630d781a04e855 218 7564 7621848927853957 CMakeFiles/ctai.dir/src/sui.cpp.obj e1630d781a04e855
19 4465 7622698140013546 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 22 4532 7622792482588033 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
16852 27251 7622698265624127 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 17016 26857 7622792608535519 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
3987 7703 7621872533500869 CMakeFiles/ctai.dir/src/ctai_session_table.cpp.obj d0b22ffae77b23cf 3987 7703 7621872533500869 CMakeFiles/ctai.dir/src/ctai_session_table.cpp.obj d0b22ffae77b23cf
19 4465 7622698140013546 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 22 4532 7622792482588033 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
4714 23837 7621924268430069 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7 4380 24531 7622788521759624 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7
19 4465 7622698140013546 ctai_autogen/timestamp da3870ebc94b983e 22 4532 7622792482588033 ctai_autogen/timestamp da3870ebc94b983e
4903 17025 7621792026943581 CMakeFiles/ctai.dir/src/sui_title.cpp.obj e026b4b712cf9da4 19 263 7622792805669253 ctai_autogen/timestamp da3870ebc94b983e
4470 15668 7622698141798775 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1 19 263 7622792805669253 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
4468 15783 7622698141764061 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115 19 263 7622792805669253 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
3560 6938 7621113173344145 CMakeFiles/ctai.dir/src/ctai_switch_control.cpp.obj ddca150b42c8a71b 19 263 7622792805669253 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
487 3274 7622684576824662 CMakeFiles/ctai.dir/qrc_res.cpp.obj 9f74f1f5e59b5b50 263 4714 7622792808103021 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4475 15186 7622698141844310 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0 4714 16023 7622792852618072 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
4083 4223 7620828272305402 CMakeFiles/ctai.dir/sui.rc.obj e30df163c9cbe567 19 5083 7622793902703499 ctai_autogen/timestamp da3870ebc94b983e
4477 9789 7622698141864287 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 19 5083 7622793902703499 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
3983 7575 7621872533460841 CMakeFiles/ctai.dir/src/ctai_session_docker.cpp.obj d8ac6cde8856dc5e 19 5083 7622793902703499 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
19 4465 7622698140013546 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 19 5083 7622793902703499 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
262 484 7622684576644682 F:/SourceCode/ctai/build/qrc_res.cpp 9794859fafc6825 5097 11530 7622793904065442 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4075 7860 7620828272226167 CMakeFiles/ctai.dir/src/sui_sys_style.cpp.obj 3bdd07348bd84970 5093 16132 7622793904020196 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80
4473 15157 7622698141824329 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80 5095 16144 7622793904045430 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0
4479 15893 7622698141889543 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc 5091 16527 7622793904010202 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1
24 4716 7622699891296621 ctai_autogen/timestamp da3870ebc94b983e 5087 16828 7622793903960268 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115
24 4716 7622699891296621 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 5099 16962 7622793904085424 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc
24 4716 7622699891296621 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 5084 17921 7622793903940220 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740
24 4716 7622699891296621 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 5089 25806 7622793903990218 CMakeFiles/ctai.dir/src/ctai_curl.cpp.obj b2496aab435c15c7
4732 10107 7622699892660075 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240 25806 36248 7622794111164701 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
4730 15149 7622699892642691 CMakeFiles/ctai.dir/src/ctai_tabwidget.cpp.obj 6fa8a641137702e0 25 268 7622794994002813 ctai_autogen/timestamp da3870ebc94b983e
4727 15177 7622699892607903 CMakeFiles/ctai.dir/src/ctai_session_widget.cpp.obj 578ff58396e1bb80 25 268 7622794994002813 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
4725 15532 7622699892590454 CMakeFiles/ctai.dir/src/ctai_session_info.cpp.obj 22d5a962360b4db1 25 268 7622794994002813 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
4722 15778 7622699892555151 CMakeFiles/ctai.dir/src/ctai.cpp.obj c7f0e07034d2e115 25 268 7622794994002813 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
4735 15783 7622699892692454 CMakeFiles/ctai.dir/src/main.cpp.obj 77280178abb968fc 269 4864 7622794996431948 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4718 16727 7622699892509755 CMakeFiles/ctai.dir/ctai_autogen/mocs_compilation.cpp.obj 696927afe9114740 4864 16181 7622795042394233 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
16727 27808 7622700012612487 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676 18 260 7622802232782276 ctai_autogen/timestamp da3870ebc94b983e
18 4445 7622704716145797 ctai_autogen/timestamp da3870ebc94b983e 18 260 7622802232782276 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
18 4445 7622704716145797 ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 18 260 7622802232782276 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e
18 4445 7622704716145797 F:/SourceCode/ctai/build/ctai_autogen/timestamp da3870ebc94b983e 18 260 7622802232782276 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e
18 4445 7622704716145797 F:/SourceCode/ctai/build/ctai_autogen/mocs_compilation.cpp da3870ebc94b983e 261 4849 7622802235215488 CMakeFiles/ctai.dir/src/ctai_textedit.cpp.obj 336256b01143e240
4449 8284 7622704717191341 CMakeFiles/ctai.dir/src/ctai_parsestring.cpp.obj c7ba770f3578d195 4849 14942 7622802281095088 F:/SourceCode/ctai/release/ctai.exe 66379903cbdcd676
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

View File

@ -418,6 +418,12 @@
"UVLADIE3JM/moc_ctai.cpp", "UVLADIE3JM/moc_ctai.cpp",
null null
], ],
[
"F:/SourceCode/ctai/src/ctai_base.h",
"MU",
"UVLADIE3JM/moc_ctai_base.cpp",
null
],
[ [
"F:/SourceCode/ctai/src/ctai_cmd.h", "F:/SourceCode/ctai/src/ctai_cmd.h",
"MU", "MU",

File diff suppressed because it is too large Load Diff

View File

@ -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/QObject \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QProcess \ 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/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/QSettings \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSize \ 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/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/QThread \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QTimer \ 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/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/QtCore \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \ 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 \ 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/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/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/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/QAction \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QActionGroup \ 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/QContextMenuEvent \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QDesktopServices \ D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QDesktopServices \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QFontDatabase \ 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/QPainterPath \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QStyleHints \ 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/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/QTransform \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QWindow \ D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QWindow \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QtGui \ 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 \ 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/3rdparty/json/json.hpp \
F:/SourceCode/ctai/src/common.h \ 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_cmd.h \
F:/SourceCode/ctai/src/ctai_curl.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_info.h \
F:/SourceCode/ctai/src/ctai_session_table.h \ F:/SourceCode/ctai/src/ctai_session_table.h \
F:/SourceCode/ctai/src/ctai_session_widget.h \ F:/SourceCode/ctai/src/ctai_session_widget.h \

View File

@ -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/iomanip \
D:/Dev/msys64/mingw64/include/c++/14.1.0/ios \ 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/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/istream \
D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \ D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \
D:/Dev/msys64/mingw64/include/c++/14.1.0/limits \ 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/xsavesintrin.h \
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.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/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/curl.h \
F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/curlver.h \ F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/curlver.h \
F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/easy.h \ F:/SourceCode/vcpkg/installed/x64-mingw-static/include/curl/easy.h \

View File

@ -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/QMutex \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QObject \ 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/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/QSize \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSizeF \ 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/QString \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QStringList \ 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/QTimer \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVariant \ 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/QtCore \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \ 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 \ 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/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/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/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/QMouseEvent \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainter \ 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/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/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/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/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/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/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/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/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/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/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/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/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.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/qguiapplication_platform.h \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qicon.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/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/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/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/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/qrgb.h \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qrgba64.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/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/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/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/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/qtgui-config.h \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtguiexports.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/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.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/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/QGroupBox \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QHBoxLayout \ D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QHBoxLayout \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QLabel \ 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/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/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/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/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/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/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/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/qgridlayout.h \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qgroupbox.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/iomanip \
D:/Dev/msys64/mingw64/include/c++/14.1.0/ios \ 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/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/istream \
D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \ D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \
D:/Dev/msys64/mingw64/include/c++/14.1.0/limits \ 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/xsavesintrin.h \
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.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/3rdparty/json/json.hpp \
F:/SourceCode/ctai/src/ctai_base.h \
F:/SourceCode/ctai/src/ctai_curl.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_info.h \
F:/SourceCode/ctai/src/ctai_session_table.h \ F:/SourceCode/ctai/src/ctai_session_table.h \
F:/SourceCode/ctai/src/ctai_switch_control.h \ F:/SourceCode/ctai/src/ctai_switch_control.h \

View File

@ -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/QObject \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QProcess \ 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/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/QSize \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSizeF \ 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/QString \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QStringList \ 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/QTimer \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QVariant \ 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/QtCore \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \ 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 \ 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/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/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/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/QMouseEvent \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPaintEvent \ 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/QPainter \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QPainterPath \ 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/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/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/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/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/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/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/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/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/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/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/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/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/qtgui-config.h \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/qtguiexports.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/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.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/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/QGroupBox \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QHBoxLayout \ D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QHBoxLayout \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/QLabel \ 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/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/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/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/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/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/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/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/qgridlayout.h \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtWidgets/qgroupbox.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/iomanip \
D:/Dev/msys64/mingw64/include/c++/14.1.0/ios \ 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/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/istream \
D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \ D:/Dev/msys64/mingw64/include/c++/14.1.0/iterator \
D:/Dev/msys64/mingw64/include/c++/14.1.0/limits \ 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/xsavesintrin.h \
D:/Dev/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/14.1.0/include/xtestintrin.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/3rdparty/json/json.hpp \
F:/SourceCode/ctai/src/ctai_base.h \
F:/SourceCode/ctai/src/ctai_cmd.h \ F:/SourceCode/ctai/src/ctai_cmd.h \
F:/SourceCode/ctai/src/ctai_curl.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_info.h \
F:/SourceCode/ctai/src/ctai_session_table.h \ F:/SourceCode/ctai/src/ctai_session_table.h \
F:/SourceCode/ctai/src/ctai_session_widget.h \ F:/SourceCode/ctai/src/ctai_session_widget.h \

View File

@ -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/QObject \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QProcess \ 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/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/QSettings \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QSize \ 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/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/QThread \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QTimer \ 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/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/QtCore \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtCore/QtCoreDepends \ 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 \ 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/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/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/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/QAction \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QActionGroup \ 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/QCloseEvent \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QContextMenuEvent \ 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/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/QPainterPath \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QStyleHints \ 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/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/QTransform \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QWindow \ D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QWindow \
D:/Dev/Qt/6.8.0/mingw1310_static_x64/include/QtGui/QtGui \ 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/common.h \
F:/SourceCode/ctai/src/ctai.cpp \ F:/SourceCode/ctai/src/ctai.cpp \
F:/SourceCode/ctai/src/ctai.h \ 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.cpp \
F:/SourceCode/ctai/src/ctai_cmd.h \ F:/SourceCode/ctai/src/ctai_cmd.h \
F:/SourceCode/ctai/src/ctai_curl.cpp \ F:/SourceCode/ctai/src/ctai_curl.cpp \

Binary file not shown.

45
src/ctai_base.h Normal file
View 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

View File

@ -140,7 +140,12 @@ void ctai_curl::send_stream(model_data &data, std::string response_data)
{ {
for (auto str : _info_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); json response = json::parse(str);
if (response.contains("choices") && !response["choices"].empty()) 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"]); 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); emit send_post_out_data(data);
} }
qDebug() << "send_stream:" << str; 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"]); 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()) if (response.contains("model") && !response["model"].empty())
{ {
@ -230,7 +255,8 @@ 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_POSTFIELDSIZE, c_data.request_body.length());
curl_easy_setopt(m_curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0); 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); curl_easy_reset(m_curl);
m_headers = nullptr; m_headers = nullptr;
curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1L); curl_easy_setopt(m_curl, CURLOPT_NOSIGNAL, 1L);

View File

@ -9,46 +9,11 @@
#include "curl/easy.h" #include "curl/easy.h"
#include <QDateTime> #include <QDateTime>
#include "3rdparty/json/json.hpp" #include "3rdparty/json/json.hpp"
#include "ctai_base.h"
#include <regex> #include <regex>
using json = nlohmann::json; 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 class ctai_curl : public QObject
{ {

View File

@ -26,17 +26,6 @@ void ctai_session_info::init_layout()
void ctai_session_info::init_sub_layout() void ctai_session_info::init_sub_layout()
{ {
m_session_systeam_info = new ctai_textedit(); 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_layout = new QVBoxLayout();
m_session_systeam_info->setReadOnly(true); m_session_systeam_info->setReadOnly(true);
m_session_systeam_info_layout->addWidget(m_session_systeam_info); 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) if (!resp_data.postback_stream_mode)
{ {
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_time)); m_session_systeam_info->appendMessage(resp_data);
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_model_data));
} }
else else
{ {
if (resp_data.postback_time != current_info_time) if(resp_data.postback_time!=current_info_time){
{
current_info_time=resp_data.postback_time; current_info_time=resp_data.postback_time;
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_time)); m_session_systeam_info->startStreamingMessage(resp_data);
m_session_systeam_info->appendMessage(QString::fromStdString(resp_data.postback_model_data)); }else{
m_session_systeam_info->appendStreamContent(resp_data);
} }
else if(resp_data.postback_model_data=="[DONE]"){
{ m_session_systeam_info->finishStreamingMessage();
m_session_systeam_info->insertPlainText(QString::fromStdString(resp_data.postback_model_data));
} }
} }
btn_disable_enable(true); btn_disable_enable(true);
@ -150,7 +137,7 @@ void ctai_session_info::ctai_session_set_steam_mode(bool state)
{ {
qDebug() << "steam mode:" << state; qDebug() << "steam mode:" << state;
m_stream_switch->setToggle(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() void ctai_session_info::ctai_session_user_sending()
{ {

View File

@ -1,7 +1,315 @@
#include "ctai_textedit.h" #include "ctai_textedit.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QClipboard>
#include <QApplication>
#include <QFileDialog>
#include <QTextStream>
#include <QStringEncoder>
ctai_textedit::ctai_textedit(QWidget *parent) ctai_textedit::ctai_textedit(QWidget *parent)
: QTextBrowser(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>");
} }

View File

@ -3,11 +3,50 @@
#define CTAI_TEXTEDIT_H #define CTAI_TEXTEDIT_H
#include <QTextBrowser> #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 class ctai_textedit : public QTextBrowser
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit ctai_textedit(QWidget *parent = nullptr); 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 #endif // CTAI_TEXTEDIT_H