From eef485306f361963e177ea523791eda441ed0a0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E4=B8=80=E9=B8=A3?= <1000000008@qq.com> Date: Tue, 10 Nov 2026 17:51:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=9A=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E7=BB=88=E7=AB=AF=E8=AE=A4=E8=AF=81=E6=81=A2=E5=A4=8D=E3=80=81?= =?UTF-8?q?=E9=80=89=E6=8B=A9=E9=A1=B5=E5=8F=8A=E7=AD=96=E7=95=A5=E5=92=8C?= =?UTF-8?q?=E6=8C=87=E6=A0=87=E9=87=87=E9=9B=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- terminal/kiosk-shell/CMakeLists.txt | 36 +- terminal/kiosk-shell/resources/README.md | 9 + terminal/kiosk-shell/resources/brand.qrc | 7 + terminal/kiosk-shell/resources/kylinsoft.png | Bin 0 -> 10076 bytes terminal/kiosk-shell/resources/logo.png | Bin 0 -> 135253 bytes terminal/kiosk-shell/resources/mark.png | Bin 0 -> 104095 bytes .../kiosk-shell/src/desktop_list_page.cpp | 393 ++++++++++++------ terminal/kiosk-shell/src/desktop_list_page.h | 20 +- terminal/kiosk-shell/src/desktop_service.h | 1 + terminal/kiosk-shell/src/main_window.cpp | 53 ++- terminal/kiosk-shell/src/main_window.h | 7 + terminal/kiosk-shell/src/platform_client.cpp | 54 ++- terminal/kiosk-shell/src/platform_client.h | 10 +- terminal/kiosk-shell/src/system_metrics.cpp | 70 ++++ terminal/kiosk-shell/src/system_metrics.h | 19 + terminal/kiosk-shell/src/terminal_policy.cpp | 31 ++ terminal/kiosk-shell/src/terminal_policy.h | 11 + .../tests/preview_desktop_list.cpp | 35 ++ .../kiosk-shell/tests/test_main_window.cpp | 218 ++++++++++ .../kiosk-shell/tests/test_system_metrics.cpp | 47 +++ .../tests/test_terminal_policy.cpp | 33 ++ tools/deploy_kiosk.sh | 1 + 22 files changed, 904 insertions(+), 151 deletions(-) create mode 100644 terminal/kiosk-shell/resources/README.md create mode 100644 terminal/kiosk-shell/resources/brand.qrc create mode 100644 terminal/kiosk-shell/resources/kylinsoft.png create mode 100644 terminal/kiosk-shell/resources/logo.png create mode 100644 terminal/kiosk-shell/resources/mark.png create mode 100644 terminal/kiosk-shell/src/system_metrics.cpp create mode 100644 terminal/kiosk-shell/src/system_metrics.h create mode 100644 terminal/kiosk-shell/src/terminal_policy.cpp create mode 100644 terminal/kiosk-shell/src/terminal_policy.h create mode 100644 terminal/kiosk-shell/tests/preview_desktop_list.cpp create mode 100644 terminal/kiosk-shell/tests/test_main_window.cpp create mode 100644 terminal/kiosk-shell/tests/test_system_metrics.cpp create mode 100644 terminal/kiosk-shell/tests/test_terminal_policy.cpp diff --git a/terminal/kiosk-shell/CMakeLists.txt b/terminal/kiosk-shell/CMakeLists.txt index 6b37a08..a6c5762 100644 --- a/terminal/kiosk-shell/CMakeLists.txt +++ b/terminal/kiosk-shell/CMakeLists.txt @@ -6,6 +6,7 @@ project(kiosk-shell CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_AUTOMOC ON) +set(CMAKE_AUTORCC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) if(NOT CMAKE_BUILD_TYPE) @@ -16,14 +17,16 @@ endif() find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Network) include(CTest) -add_executable(kiosk-shell - src/main.cpp +set(KIOSK_SOURCES + resources/brand.qrc src/main_window.cpp src/login_page.cpp src/desktop_list_page.cpp src/desktop_settings_dialog.cpp src/desktop_service.cpp src/platform_client.cpp + src/system_metrics.cpp + src/terminal_policy.cpp src/desktop_store.cpp src/moonlight_session.cpp src/transition_overlay.cpp @@ -31,6 +34,8 @@ add_executable(kiosk-shell src/config.cpp ) +add_executable(kiosk-shell src/main.cpp ${KIOSK_SOURCES}) + target_include_directories(kiosk-shell PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ) @@ -62,6 +67,14 @@ target_link_libraries(vdi-kiosk-monitor PRIVATE Threads::Threads) if(BUILD_TESTING) find_package(Qt5 REQUIRED COMPONENTS Test) + add_executable(test-system-metrics tests/test_system_metrics.cpp src/system_metrics.cpp) + target_include_directories(test-system-metrics PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + target_link_libraries(test-system-metrics PRIVATE Qt5::Core Qt5::Test) + add_test(NAME system-metrics COMMAND test-system-metrics) + add_executable(test-terminal-policy tests/test_terminal_policy.cpp src/terminal_policy.cpp) + target_include_directories(test-terminal-policy PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + target_link_libraries(test-terminal-policy PRIVATE Qt5::Core Qt5::Test) + add_test(NAME terminal-policy COMMAND test-terminal-policy) if(UNIX) find_package(Python3 REQUIRED COMPONENTS Interpreter) add_test(NAME display-guard COMMAND ${Python3_EXECUTABLE} @@ -84,6 +97,7 @@ if(BUILD_TESTING) add_executable(test-desktop-list-page tests/test_desktop_list_page.cpp src/desktop_list_page.cpp + resources/brand.qrc ) target_include_directories(test-desktop-list-page PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src @@ -98,6 +112,24 @@ if(BUILD_TESTING) set_tests_properties(desktop-list-page PROPERTIES ENVIRONMENT "QT_QPA_PLATFORM=offscreen" ) + + # Render the native page at target resolutions without occupying the display. + add_executable(preview-desktop-list tests/preview_desktop_list.cpp + src/desktop_list_page.cpp resources/brand.qrc) + target_include_directories(preview-desktop-list PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + target_link_libraries(preview-desktop-list PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets) + + add_executable(test-main-window tests/test_main_window.cpp ${KIOSK_SOURCES}) + target_include_directories(test-main-window PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) + target_link_libraries(test-main-window PRIVATE + Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Network Qt5::Test) + if(UNIX AND NOT APPLE) + target_link_libraries(test-main-window PRIVATE X11::X11) + endif() + add_test(NAME main-window-boot COMMAND test-main-window) + set_tests_properties(main-window-boot PROPERTIES + ENVIRONMENT "QT_QPA_PLATFORM=offscreen;DISPLAY=" + ) endif() install(TARGETS kiosk-shell vdi-kiosk-monitor RUNTIME DESTINATION bin) diff --git a/terminal/kiosk-shell/resources/README.md b/terminal/kiosk-shell/resources/README.md new file mode 100644 index 0000000..71e27bb --- /dev/null +++ b/terminal/kiosk-shell/resources/README.md @@ -0,0 +1,9 @@ +# Terminal brand assets + +`logo.png` and `mark.png` are rasterized from `ui/terminal/assets/logo.svg` +and `mark.svg`, preserving their view boxes and the embedded SVG color matrix +(copper RGB 189/113/59; alpha = clamp(1.4 × (R − B))). The mark uses the design's +gold tones. PNG avoids depending on SVG filter support on the ARM terminal. +`kylinsoft.png` is copied from `ui/terminal/assets/systems/kylinsoft.png`. + +Resources are embedded in the executable; no browser or runtime asset path is needed. diff --git a/terminal/kiosk-shell/resources/brand.qrc b/terminal/kiosk-shell/resources/brand.qrc new file mode 100644 index 0000000..1f6ba7d --- /dev/null +++ b/terminal/kiosk-shell/resources/brand.qrc @@ -0,0 +1,7 @@ + + + logo.png + mark.png + kylinsoft.png + + diff --git a/terminal/kiosk-shell/resources/kylinsoft.png b/terminal/kiosk-shell/resources/kylinsoft.png new file mode 100644 index 0000000000000000000000000000000000000000..4bb25d9e0ed63a3894e0d54ab36924d717a0b46b GIT binary patch literal 10076 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ⅇ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ȂC`y9 zu&(jjtjAzexJ{c-sJT?MFl8yiiJe8y*8%Xg4$C|hT<*1BD4~B!e{;Xv3E-KS7tUMe zB+<^Kf<(TTp%hu+v=4yuV;<~H&!KRVKHP79jCtY4rR&zPHj;u~_xxJ`cN@6OrQnop z-=ds?TG`e{c#-Ob!5dx^q#H&%bRP;CBj|qGbYs)@SRrq!kPyv;OZ_TiL*Jz+a8rKQ zHL{&#y*W1wqZP4n$>xc9($(4_dak#O6UVwrD2EmC1LHA43=Wly1nkg;=&O%7!+ z3}d+d9a6UEB%sTg+=Q8J@LfkAb3*F+W{f(uInXeSTv#;tE@b?W%h>k&a+tzxx^&Ul zq_>fLcEZ#n0erH9b4-y30yvulP+RJG3 zN*H!BfFEFfUT)W>HX;>5+|IZk@@GE9_`^mhcS(GW3^dIixzM&AeV&jpC9UuL`gl2Qj5T!)MhwHq zhegeK$Y)?+{l1xEDjQ+@I^gvR(qPxHgj>l?!`j1pJ}KA%L$XH&RMk1jWetSDmd zkWKo`Dce5S!SScaX8?SJUbFCC3iP2Am@=oE<7NP^j`{IDdX~x#-vBEWZLBys4D;bC z4Xo|i1BvT+PCS$Pnidx7u%%k*#(devx=Ngv^DV`^vq9d_J3L;|T~Ykv%a|QgYqNDM zx7&n`>{}@_wfmAPWK8|NPr+K}p2+*3g959{iZ|_pO)|jM*P7M7= z$~bhL=7OB#Qp)BN05_deb2mIO3}bp>m2+ef_`J?uBjtFbU<$YC(Pr{yVJQntmrCj8 zp6?Cdzj`S5RJe~?R7$0rgzFjVUd_?F&GC7v2X1q*34%S`SUEB$h1;bn#_~{@uJue6 zZr4&uO08^z2>mKIh^#DfzcVklYTTS~Yf+c1!0dA)nbl&-FpN$WW+s5@2A{%ftoxCJ zaB-b^`3xh4oCRm4;tTO-V?sMtkvbilHfxhE+D8s`U>L?USr<0$tULaHR@Z3?x9PHI z@xN{2u^}4m{{!%^9hPxwJf4&q8|tAKWE^Tud$&1(^_4JBz9^Jvb%i2FU_R6dpQ*jI zzKePCkD{M(zvG7Kr7W%v2z8Lf5EC4@A z9FKhM`qG#W7f#4c0FRfT<2#rqw*_!<)ff4-ZgcWGsW3M$w=`Y|;2Glmn#M$au-9NJ z>xnNOjp@-OA4sm`RPMSVoAhg=AEs8nIkkDim{Z^DN+~g>p~X}UKKf{DebkLFoOPS9 z#$De-Ulf`twG+cIj2uHnkBTYWrb``f0y)`pzP4TTaBbuh0PfXeS*O4Q0GuAFa~>p? zD*PXZQM@aF!!b`zq_)Oz7*1bkN&VU>Dldb1DcqdmA~udoVWZ@D%$H}VaFSZ-CdWXZ zm!)f?&l#cICGuzhul5*iu*aazsn?XL3!92sOd8R!7Nxe;vC8cel%?iOX)0Xv2}-9X zG&QOzwXYgwQZ?@QJaBw-$`r?_6wfGGKRyGxp~rAvnM=Mm@>;sSj=sIEef=dA^4eFH zF0R+t{&@eX%U~FWVRX;vc*3rPo{^p-mU}QSPT)$4?7*4jSj??f~9K^GaVESs!y1j@MB}82!^Ugi;+tslFNG z{BjM8iaLya?tA#Ir%I`3p~dFQ*!|C#2eC1xPB^~N1xgKRYZRf^?mos=Xq0wuLieLe z@i_)f*Zd)+bx3K~v@D@D2+N5|Ya51Pd}UJCRj+|gMH$M@)b7OD5@4MrPoukzRLh@0bVyGSKE3FdE(mrDVs6E${9x6@ON#zYhzJua+?GB zI8BZf^H5G1&$}KMs=S*@Q^HB3I7TX`w1=Uj>+v?_SSf925qT{mo9N@Fc+^+@-q)|q zz{fDAPoLwzZw%>r?NAa6^*%O74TdS)rlXBbU1-QKlAy)KZXtj^62KR0oOkX##Iu;z zA?etgLq6Ec{O4<)bHz@-!P242#x<;&BblJd#Au6vahbHi$Uwj z6mI!zWt;vt#0KSok|8Ad|Mvm#-WuneJO2dW`@&;mLn(x`u%3m?d|zEosmEd7xG-}+ z6N*V$chd7H6z1V_m>)-Yyxa7I9?B#5bb@7?9`ET-_?>x5AuO_8VbKVT)B=l{n;Hs+MR1b$b$1uvG ziGbc1mR!fku9%XCixwc}IzGk(a9!Vn6mKUVIn-NIBNj~^g{b^ZmGZ5Q5-Mik6!XrD z8L6iz2Yr1aM9F>MD3ctk@fy+Dvb^`b|fLki>Rjzv;Ll+|(uarXFYie2tr3(a`60=J8 zwb4c4b=r4%>a1;J^IM7~W9U5E(@B0F`>p=HF@19DpT-}szL=Lqxx6Pi&TR;kxerBK z=y)k!dFui0QTx~t zzO_Ua>UD~2r%QcGXZOq$Zu!wM9#BdZvY}!z}@JzRJKVk;A|F2Mv`T5)%_}Q(Jz(3n!bf)Q^99p-gXlt z1%dipeXh0ZSnL~RG6ey}9Ed66?f&&&_v-=1#X9#g)f);0jp0q&a!4TAw7Er@` z9{>koeq5Nsn1;rKWuy(BO-jzW^Mr_^4Qle%Ip5ag<@TtNuc7oY^eM`!RWgP!Wb_4D z=2Te{SN%7OMQ;UiOwa}(xeMsJri**!+XyukM)@|WA;Sp$UGDA9$O~&P<)8&GL!2-6 zzUseI8I$@@TBVHfp|VtcUc&s{^!k}P^Q`<`U43GGeV z5?ZsQD2=Bwb{OMe?WX%WY}zNa=WUaFv#2>2tTS#O>l%ivb*?8H0~=GgAOvO@4Rd7HDdX5;!A;zk<39R z7p9W)VV<~hYx!(kiihKCgqe*OK~w-?{4C&y5BOvL@w9S+nThPNmNq!(r>1ZtAe9k#NW` zNcQPE{W?__(B<*QVBK&Y%<6hf;Wk~^8j0b>k^Ah=0DNV{vX#sONzkqpLo6tUs(1cw z7l7ULnR&PU0T-GN0V_0#ZxWhgI7#M`p1N5kZa$A5pnN6Zaxg+D#aZE_Lvd=wy5xlb zellR0r^ep^csqdeh%t1b!c6)?`qgDhLa7*fBi`k8$1MA_rQRIsx(z87`D2nQ9PGOc zA!Uf(c=?23zTehuo2l(NBph!;>N$;eb!tksvMJ^MNnu;6GD(hOeJU{OGL+JUkp~kmv9Ca~?!5L*6w8aEi(&rWXZzv8yK@SC@0;%1Wv3+aR)nogb{caA9N(;79=1 zqj8ZRn}LlC_hVU)3;OI%R++818I7%nDX(n#TxY@A)UtUhG_?-b`0A18y(-~h4)txD zk7jk&m4$!Pb2m9(YI|?nKC8x;wr#%;Yx+6U)mUWpZ*? zNtdO{Xr`+@g)xrt(Ye}yDcq(7hl|`sIi6(RHh1G+D!e+3`aFQ1chEyBHX#%oQX!`Y z-G8x)|2-#?!a^!9ePa?UmgINt^<`&VmzVN*Qifn9{5E?1{Q=5X3NNIPh7xX%K951r zciU+UaIZfL;L`(@cgpSgH~`o5C_ts>TZ~15u)XU4IkTv_=zUY^CPhfz1!JGzs7K2FW(-oxpxav2 zK6%PCHRP-Fn>K59-3nBenxs=BeJ~RQyuqy8L z=^`xZ+_@5f+lu$xXSuGlLY=>txiKAg8@Sw4#3?X858y75oNlr$kFi)C6JPm4ma?JW zwmBbrYKI;S8%LxpYP+^TY`T%Ob!<2FIF<7^DO26@`h+++2+|E355`0rO?0JjH~LX% z`RYFx!E~Fkv`R2nM{$(m)f6j3>TkwS_SK!U)-~tCuFDxZZ|q+6h3|gJvKix}+jcH% zvnEDExs-h@`nvW$>Xv2sxhZ;wW)YY>7ah%4UDRvR9N2}zZO)xHw}!YPuYfb@;lfBB z0^nPu>@k|*!X7@J>Q*KT=GXduut0txp7)_}l*S+Uil^Rqg7LL=iL2L3&$u!#PRgFt z@t4PXZnxj*v23OBd;oii_pD5lZIY4wUDo}Nt$%mM>jAu2cxi9W?L8bc7UMw@#nE)hZJqOqw7M}dEe*swbMGk?-D8em7f{L+{u03=xc0XqZXMKrmN$Y zRM%@ynY*0d2AeB$3<+S=V}k^dJLy^8(`y6x5rD(3Qd@C<0H-O11?OvvS@-k3aL*3} za8bJt=fHWhXoZ`84sj5GOUzv1#-R|Gi4!Q-t82HG$L$Xs3gGr0#jnqsO80+R|9{uf zy)}Rb19&$nLV4lI9&dVM+LSqLXtgk`sdaU#f>Zu3l!G($NIg&N{KmX#YX#Z&hSNOQ zjG@|EY0Po_F2!>%REBke5kXE0)GiHrnhIKD_2IL=k5NY%l%vwqXCT(Kmx%A2Aum9E zZ#D*Qzp08@qkB^7I)^cAZq%vsG5Sm2W5bqs^xgh)Zr|&S))9>`gwhfr{MWqjdL1)J_6u9;ynx7`Jsi1{5=ba-TU(ac&1hGx%jqd#~i9}8Sx-wT>HMv z%i!Ookikbt0amAu+ggLyC8oeL=7(;-b=pMTcG|Yhg%sk(xD0VGiWM9fUZ&W8 zQ^(AZ0;B7)EJhZX`^Ngz`<_xKJ_Enhx=g8?Py~db*H3zmZrf&JYu+kla0r$`w5gBK zUOeTPrhFTgt_(SiVUhhQ6d_CgwsiO!>KIu};kvsXfA#w=>T1!4!fmcMFO`txQi@Ve zHv~QDN>(Iv8ej&y68A<;J=8z@^ZYf+?44*7Aoc#!|9{#?Y>5qO?gpZqsW>RaQxl zIeqL<$g;lLVVirkNIaf=w7o}7|G)6$pB}mlM)e(otn3BCTd`1}ZIpsg0&*rF* zWwgPEq{$x6r^Gu4=HWITRpA7DEL8}}?dl#LNFG^_?5WIi<6#t%bDPK^Bo|HE!$o#D zzK1UC;X?*4cL{tq;JwCh{e^yW*&fPN8kZLJqn}YxwjV&IBytdf+np!m1u|z9zV`X$p zNb#21Hkx`B)ICS&_f`Eh)DKK)*B!pOrV9gsF0E>(M$FJ7=X&buKISrab)`t^q6{G= zjnCkrFU22}yrqx(RONxz#qo9h$cP*WSGMtf|6nDh)Yjd^c?6 zv9e^#%WIPm{dyyncWQhOz`s%-VFf39Q!G_ymEq0g_wMzxM!bfc`D#Ep#EOg%YpP#U zxB*wGxqz3y*$v?M7WZ$eJX?f|-Bfwne49II9m-y;M+5laz~!C;F0}8X>7MMS`@`*7 zh5?P?+vtbBFPYFHa0mf!$l|zbe8Lrc*#~Pb1=j=9PkWaA|s^`8GZHvI(w8=Ha6i~h~LI1An zwN#hNDT(&Ts8YOz6slvDzb-ySOxMakV;n+?HoKqsFxNhoBJD8WMWtyb8! zIj4*WZQPxd!PMmkz@7lmE`%2{dm1)bNKSq6xfoz$(sv!URcf?ls%>P7gp_1bF;yirmA~cpGCWkB_Apet zjd_3=-PJ8qr*8E|zv*#|Jla4VWm4?>A@BX7rf|8bk|%Ucsbg+aB}^MqJhD>%7yCZt zx4!k7E{m`IvxVk(uWG(LhcKtvHJVhDmkK@A0j zSOfTgkSK@|MIu!cP#y*fR6rqwcR`Dwf?!dkh1+|-yJqQ}a_;GwnKQGqv$M13m;Cep z{`>7?_RRY{W`>OOanBmMR}FevP0GdRxuwvIa{LA}Mxc?C8-_4{FuH{rJg2{HA3Z

=PVK7<5PGU?cs}pK(q#E?uAeL+LUrF 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 #include #include #include +#include #include +#include #include +#include #include +#include namespace vdi { namespace { -// 在信息行里加一个拉伸占位(独立函数避免在类外重复声明) -void addStretchToRow(QHBoxLayout* row) { - row->addStretch(1); +QPixmap systemIcon(const QString& os) { + QPixmap icon(64, 64); + icon.fill(Qt::transparent); + QPainter p(&icon); + p.setRenderHint(QPainter::Antialiasing); + if (os.contains(QStringLiteral("kylin"), Qt::CaseInsensitive) || + os.contains(QStringLiteral("麒麟"))) { + const QPixmap kylin(QStringLiteral(":/brand/kylinsoft.png")); + p.drawPixmap(QRect(5, 5, 54, 54), kylin); + } else if (os.contains(QStringLiteral("ubuntu"), Qt::CaseInsensitive)) { + p.setPen(Qt::NoPen); + p.setBrush(QColor("#e95420")); + p.drawEllipse(4, 4, 56, 56); + p.setPen(QPen(Qt::white, 4)); + p.setBrush(Qt::NoBrush); + p.drawEllipse(QPointF(32, 32), 13, 13); + for (int a : {0, 120, 240}) { + const double angle = a * 3.14159265 / 180; + const QPointF at(32 + 18 * std::cos(angle), 32 + 18 * std::sin(angle)); + p.setPen(QPen(QColor("#e95420"), 4)); + p.setBrush(Qt::white); + p.drawEllipse(at, 5, 5); + } + } else if (os.contains(QStringLiteral("windows"), Qt::CaseInsensitive)) { + p.setPen(Qt::NoPen); + p.setBrush(QColor("#69b7ef")); + for (int y : {12, 34}) for (int x : {12, 34}) p.drawRect(x, y, 19, 19); + } else { + p.setPen(QPen(QColor("#bd713b"), 3)); + p.drawRoundedRect(QRect(8, 11, 48, 34), 4, 4); + p.drawLine(32, 45, 32, 54); + p.drawLine(21, 54, 43, 54); + } + return icon; +} + +QLabel* textLabel(const QString& text, const char* name, QWidget* parent) { + auto* label = new QLabel(text, parent); + label->setObjectName(QString::fromLatin1(name)); + label->setTextFormat(Qt::PlainText); + return label; } } // namespace DesktopListPage::DesktopListPage(QWidget* parent) : QWidget(parent) { - auto* root = new QVBoxLayout(this); - root->setContentsMargins(80, 50, 80, 40); - root->setSpacing(16); + setObjectName(QStringLiteral("desktopSelection")); + light_ = QSettings().value(QStringLiteral("appearance/light"), false).toBool(); - // ---- 标题区 ---- - auto* title = new QLabel(QStringLiteral("选择云桌面"), this); - QFont titleFont = title->font(); - titleFont.setPointSize(26); - titleFont.setBold(true); - title->setFont(titleFont); - title->setAlignment(Qt::AlignCenter); - root->addWidget(title); + themeButton_ = new QPushButton(this); + themeButton_->setObjectName(QStringLiteral("themeButton")); + themeButton_->setCursor(Qt::PointingHandCursor); + connect(themeButton_, &QPushButton::clicked, this, [this] { + light_ = !light_; + QSettings().setValue(QStringLiteral("appearance/light"), light_); + applyTheme(); + }); - auto* infoRow = new QHBoxLayout(); - labelUser_ = new QLabel(this); - labelUser_->setStyleSheet(QStringLiteral("color: #8a94a6;")); - // 无登录页演示模式下不设"退出登录"(用户身份由设备/平台承担, - // 正式认证接入后由 DesktopService 驱动恢复登录流程) - infoRow->addWidget(labelUser_); - addStretchToRow(infoRow); - root->addLayout(infoRow); + panel_ = new QFrame(this); + panel_->setObjectName(QStringLiteral("selectionPanel")); + auto* content = new QVBoxLayout(panel_); + content->setContentsMargins(28, 24, 28, 20); + content->setSpacing(8); + content->addWidget(textLabel(QStringLiteral("你的云端工作空间"), "eyebrow", panel_)); + auto* titleRow = new QHBoxLayout; + titleRow->addWidget(textLabel(QStringLiteral("选择云桌面"), "pageTitle", panel_)); + titleRow->addStretch(); + labelCount_ = textLabel(QString(), "desktopCount", panel_); + titleRow->addWidget(labelCount_); + content->addLayout(titleRow); + content->addWidget(textLabel(QStringLiteral("选择工作环境,继续你的工作。"), "subtitle", panel_)); + content->addSpacing(8); - // ---- 卡片区 ---- - auto* scroll = new QScrollArea(this); - scroll->setWidgetResizable(true); - scroll->setFrameShape(QFrame::NoFrame); - scroll->setStyleSheet(QStringLiteral( - "QScrollArea { background: transparent; }" - "QWidget { background: transparent; }")); - - auto* cardsHost = new QWidget(scroll); + scroll_ = new QScrollArea(panel_); + scroll_->setWidgetResizable(true); + scroll_->setFrameShape(QFrame::NoFrame); + scroll_->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + auto* cardsHost = new QWidget(scroll_); + cardsHost->setObjectName(QStringLiteral("cardsHost")); cardsLayout_ = new QVBoxLayout(cardsHost); - cardsLayout_->setSpacing(14); + cardsLayout_->setContentsMargins(0, 0, 8, 0); + cardsLayout_->setSpacing(12); cardsLayout_->addStretch(1); - scroll->setWidget(cardsHost); - root->addWidget(scroll, 1); + scroll_->setWidget(cardsHost); + content->addWidget(scroll_, 1); - // ---- 状态条 ---- - labelStatus_ = new QLabel(this); - labelStatus_->setAlignment(Qt::AlignCenter); - labelStatus_->setStyleSheet(QStringLiteral("color: #8a94a6;")); - root->addWidget(labelStatus_); + labelEmpty_ = textLabel(QStringLiteral("正在获取可用云桌面…\n桌面列表将在连接完成后自动显示"), "emptyState", panel_); + labelEmpty_->setAlignment(Qt::AlignCenter); + labelEmpty_->setWordWrap(true); + content->addWidget(labelEmpty_, 1); + auto* separator = new QFrame(panel_); + separator->setObjectName(QStringLiteral("separator")); + separator->setFixedHeight(1); + content->addWidget(separator); + labelStatus_ = textLabel(QString(), "selectionStatus", panel_); + labelStatus_->setWordWrap(true); + labelStatus_->setMinimumHeight(24); + content->addWidget(labelStatus_); + applyTheme(); + rebuildCards(); +} + +void DesktopListPage::applyTheme() { + const QString text = light_ ? "#1f2937" : "#e4e8ed"; + const QString muted = light_ ? "#596575" : "#a5b1bf"; + const QString line = light_ ? "#e5ddd6" : "#394452"; + const QString card = light_ ? "#ffffff" : "#242d38"; + const QString field = light_ ? "#f6f7f9" : "#29333f"; + setStyleSheet(QStringLiteral( + "QWidget#desktopSelection { background: transparent; color: %1; font-family: 'Noto Sans CJK SC', 'Microsoft YaHei', sans-serif; font-size: 14px; }" + "QLabel { background: transparent; border: none; color: %1; font-size: 14px; }" + "QFrame#selectionPanel { background: %4; border: 1px solid %3; border-radius: 24px; }" + "QLabel#eyebrow { color: #bd713b; font-size: 12px; font-weight: 600; }" + "QLabel#pageTitle { font-size: 30px; font-weight: 700; }" + "QLabel#subtitle, QLabel#desktopCount, QLabel#desktopOs, QLabel#emptyState { color: %2; }" + "QLabel#emptyState { line-height: 180%; }" + "QLabel#desktopName { font-size: 17px; font-weight: 600; }" + "QLabel#desktopOs { font-size: 12px; }" + "QLabel#desktopState { font-size: 12px; color: %2; }" + "QLabel#desktopState[tone=available] { color: %6; }" + "QLabel#desktopState[tone=pending] { color: %7; }" + "QLabel#systemIcon { background: %4; border-radius: 12px; }" + "QFrame#separator { background: %3; border: none; }" + "QScrollArea, QWidget#cardsHost { background: transparent; border: none; }" + "QFrame#desktopCard { background: %5; border: 1px solid %3; border-radius: 14px; }" + "QFrame#desktopCard:hover { border-color: #bd713b; }" + "QPushButton { background: transparent; color: %1; border: 1px solid %3; border-radius: 9px; padding: 7px 14px; font-size: 14px; }" + "QPushButton:hover { background: %5; border-color: #bd713b; }" + "QPushButton:focus { border: 2px solid #d99a6c; }" + "QPushButton#connectButton { background: #bd713b; border: 1px solid #bd713b; color: #ffffff; font-weight: 600; }" + "QPushButton#connectButton:hover { background: #ce834b; border-color: #ce834b; }" + "QPushButton#connectButton:pressed { background: #a35e30; }" + "QPushButton:disabled, QPushButton#connectButton:disabled { background: %3; color: %2; border-color: %3; }" + "QPushButton#themeButton { background: %4; font-size: 12px; }" + "QScrollBar:vertical { background: transparent; width: 6px; margin: 0; }" + "QScrollBar::handle:vertical { background: %3; border-radius: 3px; min-height: 24px; }" + "QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical { height: 0; }" + "QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { background: transparent; }" + ).arg(text, muted, line, card, field, + light_ ? "#327657" : "#8bc9a5", light_ ? "#8e6224" : "#d6ad72")); + themeButton_->setText(light_ ? QStringLiteral("☼ 浅色外观") : QStringLiteral("◐ 深色外观")); + themeButton_->setAccessibleName(light_ ? QStringLiteral("切换为深色外观") : QStringLiteral("切换为浅色外观")); + setStatus(labelStatus_->text(), statusError_); + update(); } void DesktopListPage::setDesktops(const std::vector& desktops) { @@ -70,127 +167,161 @@ void DesktopListPage::setDesktops(const std::vector& desktops) { void DesktopListPage::rebuildCards() { actionButtons_.clear(); - - // 清空旧卡片(最后一项是 stretch) while (cardsLayout_->count() > 1) { QLayoutItem* item = cardsLayout_->takeAt(0); - if (item->widget()) { - item->widget()->deleteLater(); - } + if (item->widget()) { item->widget()->hide(); item->widget()->deleteLater(); } delete item; } - + labelCount_->setText(QStringLiteral("%1 个桌面").arg(desktops_.size())); + labelEmpty_->setVisible(desktops_.empty()); + scroll_->setVisible(!desktops_.empty()); for (const DesktopInfo& d : desktops_) { - auto* card = new QFrame(this); + auto* card = new QFrame; card->setObjectName(QStringLiteral("desktopCard")); - card->setMinimumHeight(96); - card->setStyleSheet(QStringLiteral( - "QFrame#desktopCard { background: #1a2233; border: 1px solid #2b3654; border-radius: 10px; }" - "QLabel { border: none; background: transparent; }")); - + card->setMinimumHeight(height() >= 900 ? 120 : 86); auto* row = new QHBoxLayout(card); - row->setContentsMargins(24, 16, 24, 16); - row->setSpacing(18); - - auto* textCol = new QVBoxLayout(); - textCol->setSpacing(4); - auto* name = new QLabel(d.name, card); - QFont nameFont = name->font(); - nameFont.setPointSize(15); - nameFont.setBold(true); - name->setFont(nameFont); - auto* osLine = new QLabel(d.os, card); - osLine->setStyleSheet(QStringLiteral("color: #8a94a6;")); + row->setContentsMargins(16, 12, 16, 12); + row->setSpacing(14); + auto* icon = textLabel(QString(), "systemIcon", card); + icon->setFixedSize(56, 56); + icon->setAlignment(Qt::AlignCenter); + icon->setPixmap(systemIcon(d.os).scaled(44, 44, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + row->addWidget(icon); + auto* textCol = new QVBoxLayout; + textCol->setSpacing(6); + auto* name = textLabel(d.name, "desktopName", card); + name->setWordWrap(true); textCol->addWidget(name); - textCol->addWidget(osLine); + textCol->addWidget(textLabel(d.os, "desktopOs", card)); row->addLayout(textCol, 1); - - // 状态标签(会话通道统一 Moonlight,无需按桌面标注协议) QString stateText; - QString stateColor; + const char* tone = "unassigned"; switch (d.state) { - case DesktopState::kAvailable: - stateText = QStringLiteral("可连接"); - stateColor = QStringLiteral("#3fb950"); - break; - case DesktopState::kPending: - stateText = QStringLiteral("任务进行中"); - stateColor = QStringLiteral("#d29922"); - break; - case DesktopState::kUnassigned: - stateText = QStringLiteral("待分配"); - stateColor = QStringLiteral("#8a94a6"); - break; + case DesktopState::kAvailable: + stateText = QStringLiteral("可连接"); tone = "available"; break; + case DesktopState::kPending: + stateText = QStringLiteral("任务进行中"); tone = "pending"; break; + case DesktopState::kUnassigned: + stateText = QStringLiteral("待分配"); break; } - auto* state = new QLabel(stateText, card); - state->setStyleSheet(QStringLiteral("color: %1; font-weight: bold;").arg(stateColor)); - row->addWidget(state); - - // “设置”:每张卡都可编辑连接参数(协议/地址/应用名/分辨率/帧率) - auto* editBtn = new QPushButton(QStringLiteral("设置"), card); - editBtn->setMinimumSize(88, 42); - editBtn->setEnabled(!busy_); - actionButtons_.push_back(editBtn); - connect(editBtn, &QPushButton::clicked, this, [this, id = d.id]() { - if (!busy_) { - emit editRequested(id); - } - }); - row->addWidget(editBtn); - + auto* actions = new QVBoxLayout; + actions->setSpacing(8); + auto* state = textLabel(stateText, "desktopState", card); + state->setAlignment(Qt::AlignRight); + state->setProperty("tone", tone); + actions->addWidget(state); + auto* buttons = new QHBoxLayout; + buttons->setSpacing(8); + auto* edit = new QPushButton(QStringLiteral("设置"), card); + edit->setMinimumSize(64, 36); + edit->setCursor(Qt::PointingHandCursor); + edit->setAccessibleName(QStringLiteral("设置 %1").arg(d.name)); + edit->setEnabled(!busy_); + actionButtons_.push_back(edit); + connect(edit, &QPushButton::clicked, this, [this, id = d.id] { if (!busy_) emit editRequested(id); }); + buttons->addWidget(edit); + auto* enter = new QPushButton(QStringLiteral("连接"), card); + enter->setObjectName(QStringLiteral("connectButton")); + enter->setMinimumSize(82, 36); + enter->setCursor(Qt::PointingHandCursor); + enter->setAccessibleName(QStringLiteral("连接 %1").arg(d.name)); + enter->setEnabled(!busy_ && d.state == DesktopState::kAvailable); if (d.state == DesktopState::kAvailable) { - auto* connectBtn = new QPushButton(QStringLiteral("连接"), card); - connectBtn->setMinimumSize(110, 42); - connectBtn->setStyleSheet(QStringLiteral( - "QPushButton { background: #2f6feb; color: white; border: none; " - "border-radius: 6px; font-weight: bold; }" - "QPushButton:disabled { background: #3a4a63; }")); - connectBtn->setEnabled(!busy_); - actionButtons_.push_back(connectBtn); - connect(connectBtn, &QPushButton::clicked, this, [this, id = d.id]() { - if (!busy_) { - setBusy(true); - setStatus(QStringLiteral("正在连接,请稍候…")); - emit desktopSelected(id); - } + actionButtons_.push_back(enter); + connect(enter, &QPushButton::clicked, this, [this, id = d.id] { + if (busy_) return; + setBusy(true); + setStatus(QStringLiteral("正在连接,请稍候…")); + emit desktopSelected(id); }); - row->addWidget(connectBtn); - } else { - auto* btn = new QPushButton(QStringLiteral("连接"), card); - btn->setMinimumSize(110, 42); - btn->setEnabled(false); - row->addWidget(btn); } - + buttons->addWidget(enter); + actions->addLayout(buttons); + row->addLayout(actions); cardsLayout_->insertWidget(cardsLayout_->count() - 1, card); } } void DesktopListPage::setStatus(const QString& text, bool error) { + statusError_ = error; labelStatus_->setText(text); - labelStatus_->setStyleSheet( - QStringLiteral("color: %1;").arg(error ? QStringLiteral("#e05561") - : QStringLiteral("#8a94a6"))); + labelStatus_->setStyleSheet(QStringLiteral("color: %1; font-size: 13px;") + .arg(error ? (light_ ? "#b33243" : "#ff9ca6") : (light_ ? "#596575" : "#a5b1bf"))); + if (desktops_.empty()) labelEmpty_->setText(text.isEmpty() + ? QStringLiteral("暂无可用桌面\n请联系管理员分配云桌面") + : QStringLiteral("正在等待云桌面\n连接状态将自动更新")); } void DesktopListPage::setBusy(bool busy) { busy_ = busy; - for (QPushButton* button : actionButtons_) { - if (button) { - button->setEnabled(!busy_); - } - } + for (QPushButton* button : actionButtons_) button->setEnabled(!busy_); } -QString DesktopListPage::currentUser() const { - return currentUser_; -} +QString DesktopListPage::currentUser() const { return currentUser_; } void DesktopListPage::setCurrentUser(const QString& user) { currentUser_ = user; - labelUser_->setText(user.isEmpty() - ? QStringLiteral("当前用户:未登录") - : QStringLiteral("当前用户:%1").arg(user)); +} + +void DesktopListPage::arrangePage() { + // Keep native text at a readable size; the list scrolls on short displays. + const bool compact = width() < 1000; + const int left = compact ? 24 : qRound(width() * .465); + const int right = compact ? 24 : qMax(28, qRound(width() * .055)); + const int top = compact ? 112 : qMax(100, qRound(height() * .155)); + int panelHeight = height() - top - (compact ? 24 : qRound(height() * .10)); + if (height() >= 900) panelHeight = qMin(panelHeight, qRound(height() * .64)); + panel_->setGeometry(left, top, qMax(320, width() - left - right), qMax(300, panelHeight)); + for (QFrame* card : panel_->findChildren(QStringLiteral("desktopCard"))) { + card->setMinimumHeight(height() >= 900 ? 120 : 86); + } + themeButton_->setGeometry(width() - 166, 28, 132, 40); +} + +void DesktopListPage::resizeEvent(QResizeEvent* event) { + QWidget::resizeEvent(event); + arrangePage(); +} + +void DesktopListPage::paintEvent(QPaintEvent*) { + QPainter p(this); + p.setRenderHint(QPainter::Antialiasing); + p.fillRect(rect(), QColor(light_ ? "#ffffff" : "#181f27")); + const bool compact = width() < 1000; + const double s = qMin(width() / 1920.0, height() / 1080.0); + const double divide = width() * .52; + QLinearGradient background(0, 0, divide, height()); + background.setColorAt(0, QColor(light_ ? "#fcf8f5" : "#1b222b")); + background.setColorAt(1, QColor(light_ ? "#f5e6da" : "#262930")); + p.fillRect(QRectF(0, 0, compact ? width() : divide, height()), background); + static const QPixmap logo(QStringLiteral(":/brand/logo.png")); + p.setRenderHint(QPainter::SmoothPixmapTransform); + p.drawPixmap(QRectF(44 * s + 12, compact ? 25 : 42 * s, compact ? 200 : 240 * s, compact ? 66 : 79 * s), logo, logo.rect()); + if (compact) return; + p.save(); + p.scale(s, s); + QFont font(QStringLiteral("Noto Sans CJK SC")); + font.setPixelSize(46); font.setBold(true); p.setFont(font); + p.setPen(QColor(light_ ? "#1f2937" : "#e4e8ed")); + p.drawText(QRectF(56, 157, 740, 130), Qt::AlignLeft, QStringLiteral("百工协作,\n万象更新。")); + font.setPixelSize(15); font.setBold(false); p.setFont(font); + p.setPen(QColor(light_ ? "#596575" : "#a5b1bf")); + p.drawText(QRectF(56, 306, 760, 36), Qt::AlignLeft, QStringLiteral("连接你的云端桌面,让工作自然延续。")); + const double cx = 420, cy = 665; + QRadialGradient halo(cx, cy, 355); + halo.setColorAt(0, light_ ? QColor(255, 255, 255, 210) : QColor(230, 161, 94, 26)); + halo.setColorAt(1, QColor(230, 161, 94, 0)); + p.setPen(Qt::NoPen); p.setBrush(halo); p.drawEllipse(QPointF(cx, cy), 355, 335); + static const QPixmap mark(QStringLiteral(":/brand/mark.png")); + p.drawPixmap(QRectF(110, 400, 620, 525), mark, mark.rect()); + p.setBrush(QColor(light_ ? "#bd865b" : "#c6a06c")); + for (int i = 0; i < 28; ++i) { + double a = i * 2.399, r = 330 + (i % 4) * 13; + p.drawEllipse(QPointF(cx + std::cos(a) * r, cy + std::sin(a) * r * .82), i % 4 ? 1 : 2, i % 4 ? 1 : 2); + } + font.setPixelSize(13); p.setFont(font); p.setPen(QColor(light_ ? "#596575" : "#a5b1bf")); + p.drawText(QRectF(56, 1007, 710, 32), Qt::AlignLeft, QStringLiteral("百工万象 / 云桌面工作台")); + p.restore(); } } // namespace vdi diff --git a/terminal/kiosk-shell/src/desktop_list_page.h b/terminal/kiosk-shell/src/desktop_list_page.h index ea453d2..d67d6b0 100644 --- a/terminal/kiosk-shell/src/desktop_list_page.h +++ b/terminal/kiosk-shell/src/desktop_list_page.h @@ -1,6 +1,6 @@ // 桌面列表页 // -// 登录成功后展示当前用户可用的云桌面卡片; +// 开机设备认证后展示平台授权的云桌面卡片; // 选择桌面后由 MainWindow 获取连接票据并启动对应协议会话; // 会话退出后返回本页。 @@ -15,6 +15,8 @@ class QLabel; class QPushButton; class QVBoxLayout; +class QFrame; +class QScrollArea; namespace vdi { @@ -41,15 +43,29 @@ signals: private: void rebuildCards(); + void applyTheme(); + void arrangePage(); + +protected: + void paintEvent(QPaintEvent* event) override; + void resizeEvent(QResizeEvent* event) override; + +private: std::vector desktops_; QString currentUser_; - QLabel* labelUser_ = nullptr; QLabel* labelStatus_ = nullptr; QVBoxLayout* cardsLayout_ = nullptr; std::vector actionButtons_; bool busy_ = false; + bool light_ = false; + bool statusError_ = false; + QFrame* panel_ = nullptr; + QScrollArea* scroll_ = nullptr; + QLabel* labelCount_ = nullptr; + QLabel* labelEmpty_ = nullptr; + QPushButton* themeButton_ = nullptr; }; } // namespace vdi diff --git a/terminal/kiosk-shell/src/desktop_service.h b/terminal/kiosk-shell/src/desktop_service.h index b97ecb2..249f05c 100644 --- a/terminal/kiosk-shell/src/desktop_service.h +++ b/terminal/kiosk-shell/src/desktop_service.h @@ -36,6 +36,7 @@ public: QString currentUser() const { return currentUser_; } bool platformManaged() const { return platform_.configured(); } + void setPolicyHandler(std::function handler) { platform_.desktopRefreshInterval=std::move(handler); } void sessionConnected(const QString& id) { if (platformManaged()) platform_.connected(id); } void sessionEnded(const QString& id) { if (platformManaged()) platform_.ended(id); } void setRuntimeHandlers(std::function)> reset, std::function state) { platform_.resetSession=std::move(reset); platform_.kioskState=std::move(state); } diff --git a/terminal/kiosk-shell/src/main_window.cpp b/terminal/kiosk-shell/src/main_window.cpp index 0474308..2166a61 100644 --- a/terminal/kiosk-shell/src/main_window.cpp +++ b/terminal/kiosk-shell/src/main_window.cpp @@ -65,11 +65,30 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) { auto* refresh=new QTimer(this); refresh->setInterval(15000); connect(refresh,&QTimer::timeout,this,[this]{ if (fsm_.isIn(State::kDesktopList)) refreshDesktopList(); }); refresh->start(); + desktopService_.setPolicyHandler([refresh](int seconds){ refresh->setInterval(seconds*1000); }); } + deviceAuthTimer_ = new QTimer(this); + deviceAuthTimer_->setSingleShot(true); + connect(deviceAuthTimer_, &QTimer::timeout, this, &MainWindow::authenticateDevice); + deviceAuthMessage_ = QStringLiteral("正在连接管理平台,请稍候…"); + // Paint the product page before even a synchronous configuration failure. + // Device authentication has no username/password recovery flow. + fsm_.transitionTo(State::kDesktopList, QStringLiteral("请选择要进入的云桌面")); + QTimer::singleShot(0, this, &MainWindow::authenticateDevice); +} + +void MainWindow::authenticateDevice() { + if (deviceAuthenticated_ || deviceAuthInFlight_) return; + deviceAuthTimer_->stop(); + deviceAuthInFlight_ = true; const QString deviceUser = QString::fromStdString(config_.sn).trimmed(); desktopService_.login(deviceUser.isEmpty() ? QStringLiteral("terminal") : deviceUser, QStringLiteral("kiosk"), [this](const AuthResult& result) { + deviceAuthInFlight_ = false; + deviceAuthenticated_ = result.ok; if (result.ok) { + deviceAuthRetryMs_ = 2000; + qInfo() << "vdi_device_auth result=ready"; currentUser_ = result.displayName; if (desktopListPage_) { desktopListPage_->setCurrentUser(currentUser_); @@ -77,14 +96,19 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent) { if (fsm_.isIn(State::kDesktopList)) refreshDesktopList(); return; } - // A real platform authentication failure must still return to the - // login page. The normal device-authenticated boot path never shows - // that page, so the first painted kiosk frame is the desktop list. + // A cold boot may precede Wi-Fi, clock synchronization or the API. + // Stay on the selection page and never substitute local authorization. + deviceAuthMessage_ = QStringLiteral("%1;正在自动重试,无需重启盒子") + .arg(result.message.isEmpty() + ? QStringLiteral("管理平台暂不可用") + : result.message); + qWarning() << "vdi_device_auth result=waiting retry_ms=" << deviceAuthRetryMs_; if (fsm_.isIn(State::kDesktopList)) { - fsm_.transitionTo(State::kConfig, result.message); + refreshDesktopList(); } + deviceAuthTimer_->start(deviceAuthRetryMs_); + deviceAuthRetryMs_ = qMin(deviceAuthRetryMs_ * 2, 30000); }); - fsm_.transitionTo(State::kDesktopList, QStringLiteral("请选择要进入的云桌面")); } MainWindow::~MainWindow() { @@ -155,11 +179,6 @@ void MainWindow::setupUi() { auto* list = new DesktopListPage(this); desktopListPage_ = list; - list->setStyleSheet( - QStringLiteral("QWidget { background: #0f1420; color: #e6e9ef; }" - "QPushButton { background: #232d44; border: 1px solid #2b3654; " - "border-radius: 6px; color: #e6e9ef; }" - "QPushButton:hover { background: #2b3654; }")); stack_->addWidget(list); connect(list, &DesktopListPage::desktopSelected, this, &MainWindow::onDesktopSelected); connect(list, &DesktopListPage::editRequested, this, &MainWindow::onEditDesktopRequested); @@ -169,6 +188,9 @@ void MainWindow::setupUi() { statusBar_ = new QStatusBar(this); statusBar_->setStyleSheet(QStringLiteral("QStatusBar { background: #161d2e; color: #8a94a6; }")); setStatusBar(statusBar_); + // Product feedback is shown in the page/overlay; internal FSM names are + // retained in diagnostics rather than displayed along the screen edge. + statusBar_->hide(); connectionTimer_ = new QTimer(this); connectionTimer_->setSingleShot(true); @@ -502,6 +524,15 @@ void MainWindow::showDesktopList() { } void MainWindow::refreshDesktopList() { + if (!deviceAuthenticated_) { + desktops_.clear(); + if (desktopListPage_) { + desktopListPage_->setDesktops(desktops_); + desktopListPage_->setBusy(true); + desktopListPage_->setStatus(deviceAuthMessage_); + } + return; + } desktopService_.listDesktops([this](std::vector list, const QString& error) { if (error.isEmpty()) { desktops_ = list; @@ -510,6 +541,7 @@ void MainWindow::refreshDesktopList() { } if (desktopListPage_) { desktopListPage_->setDesktops(desktops_); + desktopListPage_->setBusy(!fsm_.isIn(State::kDesktopList)); if (!error.isEmpty()) { desktopListPage_->setStatus(error, true); } else { @@ -536,6 +568,7 @@ void MainWindow::onLoginRequested(const QString& username, const QString& passwo } void MainWindow::onDesktopSelected(const QString& desktopId) { + if (!deviceAuthenticated_) return; if (!fsm_.canConnect()) { if (desktopListPage_) { desktopListPage_->setBusy(false); diff --git a/terminal/kiosk-shell/src/main_window.h b/terminal/kiosk-shell/src/main_window.h index f0fd057..8a6d25b 100644 --- a/terminal/kiosk-shell/src/main_window.h +++ b/terminal/kiosk-shell/src/main_window.h @@ -48,6 +48,7 @@ private slots: void onMenuAction(int action); private: + friend class MainWindowTest; enum class ConnectionPhase { kIdle, kTicket, @@ -61,6 +62,7 @@ private: void setupHeartbeat(); void onStateChanged(vdi::State from, vdi::State to, const QString& detail); void refreshDesktopList(); + void authenticateDevice(); bool startMoonlightSession(const ConnectionTicket& ticket, quint64 attempt); void onMoonlightEvent(quint64 attempt, const MoonlightSession::Event& event); void waitForMoonlightWindow(quint64 attempt); @@ -98,6 +100,11 @@ private: TransitionOverlay* overlay_ = nullptr; QTimer* connectionTimer_ = nullptr; QTimer* heartbeatTimer_ = nullptr; + QTimer* deviceAuthTimer_ = nullptr; + bool deviceAuthenticated_ = false; + bool deviceAuthInFlight_ = false; + int deviceAuthRetryMs_ = 2000; + QString deviceAuthMessage_; QElapsedTimer connectionClock_; QElapsedTimer phaseClock_; quint64 connectionAttempt_ = 0; diff --git a/terminal/kiosk-shell/src/platform_client.cpp b/terminal/kiosk-shell/src/platform_client.cpp index 47e2b2d..bdbed38 100644 --- a/terminal/kiosk-shell/src/platform_client.cpp +++ b/terminal/kiosk-shell/src/platform_client.cpp @@ -1,5 +1,6 @@ #include "platform_client.h" #include "config.h" +#include "terminal_policy.h" #include #include #include @@ -14,7 +15,7 @@ namespace vdi { namespace { -constexpr const char* kVersion="qt-platform/0.2.0"; +constexpr const char* kVersion="qt-platform/0.4.0"; QString readText(const QString& path) { QFile f(path); return f.open(QIODevice::ReadOnly) ? QString::fromUtf8(f.readAll()).trimmed() : QString(); } } PlatformClient::PlatformClient() { @@ -46,6 +47,8 @@ PlatformClient::PlatformClient() { heartbeat_.setInterval(30000); commands_.setInterval(3000); connect(&heartbeat_,&QTimer::timeout,this,[this]{ heartbeat(); }); connect(&commands_,&QTimer::timeout,this,[this]{ poll(); }); + policies_.setInterval(15000); + connect(&policies_,&QTimer::timeout,this,[this]{ fetchPolicy(); }); } bool PlatformClient::save() { config_["deviceToken"]=token_; @@ -67,22 +70,27 @@ void PlatformClient::request(const QString& method,const QString& path,const QJs QNetworkReply* reply=method=="GET" ? network_.get(req) : network_.post(req,QJsonDocument(body).toJson(QJsonDocument::Compact)); QTimer::singleShot(8000,reply,[reply]{ if (reply->isRunning()) reply->abort(); }); connect(reply,&QNetworkReply::readyRead,this,[reply]{ if (reply->bytesAvailable()>1024*1024) reply->abort(); }); - connect(reply,&QNetworkReply::finished,this,[this,reply,callback]{ + connect(reply,&QNetworkReply::finished,this,[this,reply,callback,path]{ const int status=reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); const auto object=QJsonDocument::fromJson(reply->read(1024*1024)).object(); QString error; if (reply->error()!=QNetworkReply::NoError || status<200 || status>=300) error=object.value("message").toString(QStringLiteral("平台请求失败,请检查网络、证书或设备授权")); if (status==409) error=QStringLiteral("409: ")+error; + if (!error.isEmpty() && (path=="/terminal/config" || path=="/terminal/register")) { + // Diagnose cold-boot ordering without logging identities or bodies. + qWarning() << "vdi_device_auth_request http_status=" << status + << "network_error=" << static_cast(reply->error()); + } reply->deleteLater(); callback(object,error); }); } void PlatformClient::authenticate(std::function callback) { - const auto ready=[this,callback](const QJsonObject&,const QString& error){ + const auto ready=[this,callback](const QJsonObject& config,const QString& error){ AuthResult result; result.ok=error.isEmpty(); result.message=error; result.displayName=QString::fromStdString(loadConfig().sn); authenticated_=result.ok; if (result.ok) { if (!save()) { result.ok=false; result.message=QStringLiteral("无法安全保存设备身份"); authenticated_=false; } - else { heartbeat_.start(); commands_.start(); heartbeat(); } + else { applyPolicy(config); heartbeat_.start(); commands_.start(); policies_.start(); heartbeat(); fetchPolicy(); } } callback(result); }; @@ -145,7 +153,7 @@ void PlatformClient::flushEnds() { QString PlatformClient::bootID() const { return readText("/proc/sys/kernel/random/boot_id"); } void PlatformClient::heartbeat() { if (!authenticated_) return; - request("POST","/terminal/heartbeat",{{"agentVersion",kVersion}},[](const QJsonObject&,const QString&){}); + request("POST","/terminal/heartbeat",{{"agentVersion",kVersion},{"policyProtocol",1},{"systemMetrics",metrics_.sample()}},[](const QJsonObject&,const QString&){}); if (connected_) connected(activeSession_); flushEnds(); const QString pending=config_.value("pendingRebootTask").toString(); @@ -154,6 +162,42 @@ void PlatformClient::heartbeat() { } flushAcks(); } +void PlatformClient::fetchPolicy() { + if (!authenticated_ || policyInFlight_) return; + policyInFlight_=true; + request("GET","/terminal/config",{},[this](const QJsonObject& reply,const QString& error){ + policyInFlight_=false; + if (error.isEmpty()) applyPolicy(reply); + else flushPolicyAck(); + }); +} +void PlatformClient::applyPolicy(const QJsonObject& reply) { + // Remain compatible with servers predating policy support. + if (!reply.contains("policyProtocol")) return; + if (reply==appliedPolicy_) { flushPolicyAck(); return; } + std::function handler; + if (desktopRefreshInterval) handler=[this](int heartbeat,int commands,int refresh){ + heartbeat_.setInterval(heartbeat*1000);commands_.setInterval(commands*1000);desktopRefreshInterval(refresh); + }; + const QString error=applyTerminalPolicy(reply,QString::fromStdString(configDir())+"/policy.json",handler); + if (error.isEmpty()) appliedPolicy_=reply; + const QString id=reply.value("deploymentId").toString(); + const int version=reply.value("configVersion").toInt(); + if (!id.isEmpty() && version>=2) { + pendingPolicyAck_={{"deploymentId",id},{"configVersion",version},{"status",error.isEmpty()?"applied":"failed"}}; + if (!error.isEmpty()) pendingPolicyAck_["errorCode"]=error; + } + flushPolicyAck(); +} +void PlatformClient::flushPolicyAck() { + if (!authenticated_ || pendingPolicyAck_.isEmpty() || policyAckInFlight_) return; + policyAckInFlight_=true; + const auto sent=pendingPolicyAck_; + request("POST","/terminal/config/ack",sent,[this,sent](const QJsonObject&,const QString& error){ + policyAckInFlight_=false; + if ((error.isEmpty() || error.startsWith("409:")) && pendingPolicyAck_==sent) pendingPolicyAck_={}; + }); +} QJsonObject PlatformClient::diagnostics() const { const double uptime=readText("/proc/uptime").section(' ',0,0).toDouble(); QFile log(QDir::homePath()+"/.xsession-errors"); QString tail; diff --git a/terminal/kiosk-shell/src/platform_client.h b/terminal/kiosk-shell/src/platform_client.h index a681c62..5335f7f 100644 --- a/terminal/kiosk-shell/src/platform_client.h +++ b/terminal/kiosk-shell/src/platform_client.h @@ -8,6 +8,7 @@ #include #include #include "desktop_session.h" +#include "system_metrics.h" namespace vdi { // Optional HTTPS device adapter. A configured platform never falls back to local authorization. @@ -23,7 +24,11 @@ public: void ended(const QString& sessionId); std::function)> resetSession; std::function kioskState; + std::function desktopRefreshInterval; private: + void fetchPolicy(); + void applyPolicy(const QJsonObject& reply); + void flushPolicyAck(); void request(const QString& method, const QString& path, const QJsonObject& body, Reply callback); void heartbeat(); void poll(); @@ -35,9 +40,12 @@ private: QString bootID() const; QString configPath_; QJsonObject config_; + SystemMetrics metrics_; QNetworkAccessManager network_; QSslConfiguration tls_; - QTimer heartbeat_, commands_; + QTimer heartbeat_, commands_, policies_; + QJsonObject appliedPolicy_, pendingPolicyAck_; + bool policyInFlight_=false, policyAckInFlight_=false; QString origin_, token_, error_, activeSession_; QSet ending_, ackInFlight_; bool configured_=false, authenticated_=false, polling_=false, connected_=false; diff --git a/terminal/kiosk-shell/src/system_metrics.cpp b/terminal/kiosk-shell/src/system_metrics.cpp new file mode 100644 index 0000000..637d87a --- /dev/null +++ b/terminal/kiosk-shell/src/system_metrics.cpp @@ -0,0 +1,70 @@ +#include "system_metrics.h" +#include +#include +#include +#include +#include +#include + +namespace { +QByteArray read(const QString& path) { + QFile file(path); + if (!file.open(QIODevice::ReadOnly)) return {}; + return file.read(65536); +} +} +namespace vdi { +SystemMetrics::SystemMetrics(QString procRoot, QString thermalRoot) + : procRoot_(std::move(procRoot)), thermalRoot_(std::move(thermalRoot)) {} +QJsonObject SystemMetrics::sample() { + QJsonObject result{{"cpuPercent", QJsonValue::Null}, {"memoryPercent", QJsonValue::Null}, + {"socTemperatureC", QJsonValue::Null}, {"uptimeSeconds", QJsonValue::Null}}; + const auto fields = QString::fromLatin1(read(procRoot_ + "/stat")).section('\n',0,0) + .simplified().split(' ', Qt::SkipEmptyParts); + std::array counters{}; + bool valid = fields.size() >= 9 && fields[0] == "cpu"; + for (int i=0; valid && i<8; ++i) { + bool ok=false; counters[i]=fields[i+1].toULongLong(&ok); valid=ok; + } + if (valid && hasPrevious_) { + quint64 total=0, idle=0; + for (int i=0; valid && i<8; ++i) { + if (counters[i]std::numeric_limits::max()-total) { valid=false; break; } + total+=delta; + if (i==3 || i==4) idle+=delta; + } + if (valid && total>0) result["cpuPercent"]=100.0*(total-idle)/total; + } + // Rebaseline after a reset; never reuse an earlier sample after a read failure. + hasPrevious_=fields.size()>=9 && fields[0]=="cpu"; + for (int i=0; hasPrevious_ && i<8; ++i) { + bool ok=false; counters[i]=fields[i+1].toULongLong(&ok); hasPrevious_=ok; + } + previous_=counters; + QMap memory; + for (const auto& line : read(procRoot_+"/meminfo").split('\n')) { + const auto parts=QString::fromLatin1(line).simplified().split(' '); + if (parts.size()!=3 || parts[2]!="kB") continue; + bool ok=false; const auto value=parts[1].toULongLong(&ok); + if (ok) memory.insert(parts[0],value); + } + const auto total=memory.value("MemTotal:"); + if (total && memory.contains("MemAvailable:") && memory.value("MemAvailable:")<=total) + result["memoryPercent"]=100.0*(total-memory.value("MemAvailable:"))/total; + bool ok=false; + const double uptime=QString::fromLatin1(read(procRoot_+"/uptime")).simplified().section(' ',0,0).toDouble(&ok); + if (ok && std::isfinite(uptime) && uptime>=0 && uptime<=3155760000.0) result["uptimeSeconds"]=uptime; + // This metric names its source. Do not relabel an arbitrary thermal zone as CPU/GPU. + for (const auto& zone : QDir(thermalRoot_).entryList({"thermal_zone*"},QDir::Dirs|QDir::NoDotAndDotDot,QDir::Name)) { + const QString base=thermalRoot_+"/"+zone; + if (read(base+"/type").trimmed()!="soc-thermal") continue; + const double temperature=QString::fromLatin1(read(base+"/temp")).trimmed().toDouble(&ok)/1000.0; + if (ok && std::isfinite(temperature) && temperature>=-40 && temperature<=150) { + result["socTemperatureC"]=temperature; break; + } + } + return result; +} +} diff --git a/terminal/kiosk-shell/src/system_metrics.h b/terminal/kiosk-shell/src/system_metrics.h new file mode 100644 index 0000000..d5482fd --- /dev/null +++ b/terminal/kiosk-shell/src/system_metrics.h @@ -0,0 +1,19 @@ +#ifndef VDI_SYSTEM_METRICS_H +#define VDI_SYSTEM_METRICS_H +#include +#include +#include + +namespace vdi { +// Read-only Linux counters. Missing or reset counters never become zero usage. +class SystemMetrics { +public: + explicit SystemMetrics(QString procRoot = "/proc", QString thermalRoot = "/sys/class/thermal"); + QJsonObject sample(); +private: + QString procRoot_, thermalRoot_; + std::array previous_{}; + bool hasPrevious_ = false; +}; +} +#endif diff --git a/terminal/kiosk-shell/src/terminal_policy.cpp b/terminal/kiosk-shell/src/terminal_policy.cpp new file mode 100644 index 0000000..9a0b53a --- /dev/null +++ b/terminal/kiosk-shell/src/terminal_policy.cpp @@ -0,0 +1,31 @@ +#include "terminal_policy.h" +#include +#include +#include +namespace vdi { +QString applyTerminalPolicy(const QJsonObject& config, const QString& path, + const std::function& apply) { + auto integer=[&config](const char* key,int min,int max) { + const auto v=config.value(key); + return v.isDouble() && std::isfinite(v.toDouble()) && std::floor(v.toDouble())==v.toDouble() + && v.toDouble()>=min && v.toDouble()<=max; + }; + if (!integer("policyProtocol",1,1) || !integer("configVersion",1,2147483647) + || !integer("heartbeatInterval",15,60) || !integer("commandPollInterval",3,30) + || !integer("desktopRefreshInterval",5,120) || !config.value("deploymentId").isString() + || config.value("deploymentId").toString().size()>100 + || (config.value("deploymentId").toString().isEmpty() != (config.value("configVersion").toInt()==1))) + return QStringLiteral("invalid_policy"); + if (!apply) return QStringLiteral("runtime_unavailable"); + QJsonObject safe; + for (const auto* key:{"policyProtocol","configVersion","deploymentId","heartbeatInterval","commandPollInterval","desktopRefreshInterval"}) + safe[key]=config.value(key); + QSaveFile file(path); + if (!file.open(QIODevice::WriteOnly) || !file.setPermissions(QFileDevice::ReadOwner|QFileDevice::WriteOwner)) + return QStringLiteral("persist_failed"); + const auto bytes=QJsonDocument(safe).toJson(); + if (file.write(bytes)!=bytes.size() || !file.commit()) return QStringLiteral("persist_failed"); + apply(config.value("heartbeatInterval").toInt(),config.value("commandPollInterval").toInt(),config.value("desktopRefreshInterval").toInt()); + return {}; +} +} diff --git a/terminal/kiosk-shell/src/terminal_policy.h b/terminal/kiosk-shell/src/terminal_policy.h new file mode 100644 index 0000000..384da32 --- /dev/null +++ b/terminal/kiosk-shell/src/terminal_policy.h @@ -0,0 +1,11 @@ +#ifndef KIOSK_SHELL_TERMINAL_POLICY_H +#define KIOSK_SHELL_TERMINAL_POLICY_H +#include +#include +#include +namespace vdi { +// Writes only the management policy. Identity and stream configuration are separate. +QString applyTerminalPolicy(const QJsonObject& config, const QString& path, + const std::function& apply); +} +#endif diff --git a/terminal/kiosk-shell/tests/preview_desktop_list.cpp b/terminal/kiosk-shell/tests/preview_desktop_list.cpp new file mode 100644 index 0000000..becb2dd --- /dev/null +++ b/terminal/kiosk-shell/tests/preview_desktop_list.cpp @@ -0,0 +1,35 @@ +#include +#include +#include +#include +#include +#include "desktop_list_page.h" + +int main(int argc, char** argv) { + QApplication app(argc, argv); + app.setOrganizationName("vdi-preview"); + app.setApplicationName("desktop-selection"); + const QStringList args = app.arguments(); + if (args.size() < 5) return 2; + QSettings().setValue("appearance/light", args[4] == "light"); + vdi::DesktopListPage page; + page.resize(args[2].toInt(), args[3].toInt()); + page.setCurrentUser(QStringLiteral("云终端")); + if (!args.contains("empty")) { + std::vector desktops; + for (const QString& os : {QStringLiteral("Windows"), QStringLiteral("Ubuntu"), QStringLiteral("麒麟")}) { + vdi::DesktopInfo d; + d.id = os; d.name = os + QStringLiteral(" 云桌面"); d.os = os; + d.state = vdi::DesktopState::kAvailable; + if (args.contains("states") && os == "Ubuntu") d.state = vdi::DesktopState::kPending; + if (args.contains("states") && os == QStringLiteral("麒麟")) d.state = vdi::DesktopState::kUnassigned; + desktops.push_back(d); + } + page.setDesktops(desktops); + } + if (args.contains("error")) page.setStatus(QStringLiteral("连接失败:管理平台暂不可用;正在自动重试,无需重启盒子"), true); + if (args.contains("busy")) { page.setBusy(true); page.setStatus(QStringLiteral("正在连接,请稍候…")); } + page.show(); + QTimer::singleShot(150, [&] { app.exit(page.grab().save(args[1]) ? 0 : 1); }); + return app.exec(); +} diff --git a/terminal/kiosk-shell/tests/test_main_window.cpp b/terminal/kiosk-shell/tests/test_main_window.cpp new file mode 100644 index 0000000..2e69099 --- /dev/null +++ b/terminal/kiosk-shell/tests/test_main_window.cpp @@ -0,0 +1,218 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "desktop_list_page.h" +#include "main_window.h" + +namespace vdi { + +// Real HTTPS requests exercise the device adapter without production identities. +class TestPlatform : public QTcpServer { +public: + QSslCertificate certificate; + QSslKey key; + bool deny = false; + int delayMs = 0; + int authRequests = 0; + int listRequests = 0; + +protected: + void incomingConnection(qintptr descriptor) override { + auto* socket = new QSslSocket(this); + socket->setLocalCertificate(certificate); + socket->setPrivateKey(key); + socket->setPeerVerifyMode(QSslSocket::VerifyNone); + if (!socket->setSocketDescriptor(descriptor)) { + socket->deleteLater(); + return; + } + auto buffer = std::make_shared(); + connect(socket, &QSslSocket::readyRead, this, [this, socket, buffer] { + *buffer += socket->readAll(); + if (!buffer->contains("\r\n\r\n") || socket->property("answered").toBool()) return; + socket->setProperty("answered", true); + const QByteArray path = buffer->split(' ').value(1); + QJsonObject body; + int status = 200; + if (path == "/api/v1/terminal/config") { + ++authRequests; + if (deny) { + status = 403; + body["message"] = QStringLiteral("设备授权不可用"); + } + } else if (path.startsWith("/api/v1/terminal/desktops")) { + ++listRequests; + body["items"] = QJsonArray{QJsonObject{ + {"id", "authorized-desktop"}, {"name", "Authorized Windows"}, + {"os", "Windows"}, {"powerState", "running"}, + {"endpoint", "127.0.0.1"}, {"app", "Desktop"}}}; + } else { + body["items"] = QJsonArray{}; + } + const QByteArray data = QJsonDocument(body).toJson(QJsonDocument::Compact); + const QByteArray response = "HTTP/1.1 " + QByteArray::number(status) + + " Result\r\nContent-Type: application/json\r\nContent-Length: " + + QByteArray::number(data.size()) + "\r\nConnection: close\r\n\r\n" + data; + QTimer::singleShot(delayMs, socket, [socket, response] { + socket->write(response); + socket->disconnectFromHost(); + }); + }); + connect(socket, &QSslSocket::disconnected, socket, &QObject::deleteLater); + socket->startServerEncryption(); + } +}; + +class MainWindowTest : public QObject { + Q_OBJECT +private: + QTemporaryDir certificates_; + std::unique_ptr homeDirectory_; + QByteArray originalHome_; + QString certificatePath_; + QString keyPath_; + + void configure(TestPlatform& server, quint16 port, bool invalidCA = false) { + const QString directory = homeDirectory_->path() + "/.config/vdi-terminal"; + QVERIFY(QDir().mkpath(directory)); + QFile certificateFile(certificatePath_); + QVERIFY(certificateFile.open(QIODevice::ReadOnly)); + server.certificate = QSslCertificate(certificateFile.readAll()); + QFile keyFile(keyPath_); + QVERIFY(keyFile.open(QIODevice::ReadOnly)); + server.key = QSslKey(keyFile.readAll(), QSsl::Rsa); + QFile config(directory + "/platform.json"); + QVERIFY(config.open(QIODevice::WriteOnly)); + config.write(QJsonDocument(QJsonObject{ + {"url", QString("https://127.0.0.1:%1").arg(port)}, + {"deviceToken", "isolated-test-identity"}, + {"caFile", invalidCA ? directory + "/missing.pem" : certificatePath_} + }).toJson()); + config.close(); + // A previously saved local desktop must not bypass device authentication. + QFile local(directory + "/desktops.json"); + QVERIFY(local.open(QIODevice::WriteOnly)); + local.write("[{\"id\":\"local-only\",\"name\":\"Unauthorized Local\"," + "\"os\":\"Windows\",\"endpoint\":\"127.0.0.2\"}]"); + } + + void prepare(MainWindow& window) { + // Tests neither update the real watchdog heartbeat nor touch X11 focus. + window.heartbeatTimer_->stop(); + window.deviceAuthRetryMs_ = 30; + } + + bool selectionVisible(MainWindow& window) { + return window.fsm_.isIn(State::kDesktopList) && + window.stack_->currentWidget() == window.desktopListPage_; + } + +private slots: + void initTestCase() { + QVERIFY(certificates_.isValid()); + certificatePath_ = certificates_.path() + "/server.pem"; + keyPath_ = certificates_.path() + "/server.key"; + QProcess openssl; + openssl.start("openssl", {"req", "-x509", "-newkey", "rsa:2048", "-nodes", + "-keyout", keyPath_, "-out", certificatePath_, "-days", "1", + "-subj", "/CN=127.0.0.1", "-addext", "subjectAltName=IP:127.0.0.1"}); + QVERIFY(openssl.waitForFinished(10000)); + QCOMPARE(openssl.exitCode(), 0); + } + void init() { + originalHome_ = qgetenv("HOME"); + homeDirectory_ = std::make_unique(); + QVERIFY(homeDirectory_->isValid()); + qputenv("HOME", homeDirectory_->path().toUtf8()); + } + void cleanup() { + if (originalHome_.isNull()) qunsetenv("HOME"); + else qputenv("HOME", originalHome_); + homeDirectory_.reset(); + } + void offlineBootRecoversWithoutRestart() { + TestPlatform server; + QVERIFY(server.listen(QHostAddress::LocalHost, 0)); + const quint16 port = server.serverPort(); + server.close(); + configure(server, port); + MainWindow window; + prepare(window); + QTRY_VERIFY(window.deviceAuthTimer_->isActive()); + QVERIFY(selectionVisible(window)); + QVERIFY(!window.deviceAuthenticated_); + QVERIFY(window.desktops_.empty()); + QCOMPARE(server.listRequests, 0); + QVERIFY(server.listen(QHostAddress::LocalHost, port)); + QTRY_VERIFY(window.deviceAuthenticated_); + QTRY_COMPARE(window.desktops_.size(), size_t(1)); + QCOMPARE(window.desktops_[0].id, QString("authorized-desktop")); + QVERIFY(selectionVisible(window)); + QVERIFY(!window.deviceAuthTimer_->isActive()); + } + void rejectedIdentityStaysOnSelectionAndRetries() { + TestPlatform server; + QVERIFY(server.listen(QHostAddress::LocalHost, 0)); + configure(server, server.serverPort()); + server.deny = true; + MainWindow window; + prepare(window); + QTRY_VERIFY(server.authRequests >= 3); + QVERIFY(selectionVisible(window)); + QVERIFY(!window.deviceAuthenticated_); + QVERIFY(window.desktops_.empty()); + QCOMPARE(server.listRequests, 0); + server.deny = false; + QTRY_VERIFY(window.deviceAuthenticated_); + QTRY_COMPARE(window.desktops_.size(), size_t(1)); + QVERIFY(selectionVisible(window)); + } + void slowAuthenticationDoesNotOverlap() { + TestPlatform server; + QVERIFY(server.listen(QHostAddress::LocalHost, 0)); + configure(server, server.serverPort()); + server.delayMs = 200; + MainWindow window; + prepare(window); + QTRY_COMPARE(server.authRequests, 1); + window.authenticateDevice(); + window.authenticateDevice(); + QVERIFY(window.deviceAuthInFlight_); + QTRY_VERIFY(window.deviceAuthenticated_); + QCOMPARE(server.authRequests, 1); + QVERIFY(selectionVisible(window)); + } + void invalidConfigurationNeverShowsLogin() { + TestPlatform server; + configure(server, 1, true); + MainWindow window; + prepare(window); + QTRY_VERIFY(window.deviceAuthTimer_->isActive()); + QVERIFY(selectionVisible(window)); + QVERIFY(!window.deviceAuthenticated_); + QCOMPARE(server.authRequests, 0); + } + void localModeStillLoadsDesktops() { + MainWindow window; + prepare(window); + QTRY_VERIFY(window.deviceAuthenticated_); + QVERIFY(selectionVisible(window)); + QVERIFY(!window.deviceAuthTimer_->isActive()); + } +}; + +} // namespace vdi + +QTEST_MAIN(vdi::MainWindowTest) +#include "test_main_window.moc" diff --git a/terminal/kiosk-shell/tests/test_system_metrics.cpp b/terminal/kiosk-shell/tests/test_system_metrics.cpp new file mode 100644 index 0000000..2c66ff5 --- /dev/null +++ b/terminal/kiosk-shell/tests/test_system_metrics.cpp @@ -0,0 +1,47 @@ +#include "system_metrics.h" +#include +#include +#include +#include +class SystemMetricsTest : public QObject { + Q_OBJECT +private slots: + void countersAndMissing() { + QTemporaryDir root; + auto put=[&](const QString& path,const QByteArray& value) { QFile f(root.path()+path); QVERIFY(f.open(QIODevice::WriteOnly)); f.write(value); }; + QDir().mkpath(root.path()+"/thermal/thermal_zone0"); + put("/stat","cpu 100 0 50 800 50 0 0 0 100 0\n"); + put("/meminfo","MemTotal: 1000 kB\nMemAvailable: 700 kB\n"); + put("/uptime","120.5 80\n"); + put("/thermal/thermal_zone0/type","soc-thermal\n"); + put("/thermal/thermal_zone0/temp","44370\n"); + vdi::SystemMetrics collector(root.path(),root.path()+"/thermal"); + auto sample=collector.sample(); + QVERIFY(sample["cpuPercent"].isNull()); + QCOMPARE(sample["memoryPercent"].toDouble(),30.0); + QCOMPARE(sample["socTemperatureC"].toDouble(),44.37); + QCOMPARE(sample["uptimeSeconds"].toDouble(),120.5); + put("/stat","cpu 120 0 60 860 60 0 0 0 500 0\n"); + QCOMPARE(collector.sample()["cpuPercent"].toDouble(),30.0); // guest time is not counted twice + QVERIFY(collector.sample()["cpuPercent"].isNull()); // no counter delta + put("/stat","cpu 1 0 0 1 0 0 0 0\n"); + QVERIFY(collector.sample()["cpuPercent"].isNull()); // reboot/reset + put("/stat","broken\n"); collector.sample(); + put("/stat","cpu 2 0 0 5 0 0 0 0\n"); + QVERIFY(collector.sample()["cpuPercent"].isNull()); + put("/meminfo","MemTotal: 100 kB\nMemAvailable: 101 kB\n"); + put("/uptime","nan\n"); + put("/thermal/thermal_zone0/type","gpu-thermal\n"); + sample=collector.sample(); + QVERIFY(sample["memoryPercent"].isNull()); + QVERIFY(sample["uptimeSeconds"].isNull()); + QVERIFY(sample["socTemperatureC"].isNull()); + } + void unavailable() { + vdi::SystemMetrics collector("/nonexistent/proc","/nonexistent/thermal"); + const auto sample=collector.sample(); + for (auto value : sample) QVERIFY(value.isNull()); + } +}; +QTEST_GUILESS_MAIN(SystemMetricsTest) +#include "test_system_metrics.moc" diff --git a/terminal/kiosk-shell/tests/test_terminal_policy.cpp b/terminal/kiosk-shell/tests/test_terminal_policy.cpp new file mode 100644 index 0000000..0929827 --- /dev/null +++ b/terminal/kiosk-shell/tests/test_terminal_policy.cpp @@ -0,0 +1,33 @@ +#include +#include +#include +#include +#include "terminal_policy.h" +class TerminalPolicyTest : public QObject { + Q_OBJECT +private slots: + void durableBeforeRuntime() { + QTemporaryDir dir; const QString path=dir.path()+"/policy.json";int calls=0; + QJsonObject p{{"policyProtocol",1},{"configVersion",2},{"deploymentId","dispatch_1"}, + {"heartbeatInterval",30},{"commandPollInterval",5},{"desktopRefreshInterval",20},{"deviceToken","must-not-persist"}}; + auto apply=[&](int h,int c,int r){ + QFile file(path); QVERIFY(file.open(QIODevice::ReadOnly)); + const auto disk=QJsonDocument::fromJson(file.readAll()).object(); + QCOMPARE(disk.value("configVersion").toInt(),2);QVERIFY(!disk.contains("deviceToken")); + QCOMPARE(h,30);QCOMPARE(c,5);QCOMPARE(r,20);++calls; + }; + QCOMPARE(vdi::applyTerminalPolicy(p,path,apply),QString());QCOMPARE(calls,1); + const auto original=QFileInfo(path).size(); + for (const auto key:{"heartbeatInterval","commandPollInterval","desktopRefreshInterval","policyProtocol","configVersion"}) { + auto bad=p;bad[key]=1.5; + QCOMPARE(vdi::applyTerminalPolicy(bad,path,apply),QString("invalid_policy")); + } + auto bad=p;bad["heartbeatInterval"]=90; + QCOMPARE(vdi::applyTerminalPolicy(bad,path,apply),QString("invalid_policy")); + QCOMPARE(QFileInfo(path).size(),original);QCOMPARE(calls,1); + QCOMPARE(vdi::applyTerminalPolicy(p,dir.path()+"/missing/policy.json",apply),QString("persist_failed")); + QCOMPARE(vdi::applyTerminalPolicy(p,path,{}),QString("runtime_unavailable"));QCOMPARE(calls,1); + } +}; +QTEST_GUILESS_MAIN(TerminalPolicyTest) +#include "test_terminal_policy.moc" diff --git a/tools/deploy_kiosk.sh b/tools/deploy_kiosk.sh index 1bc5233..9cb89fa 100644 --- a/tools/deploy_kiosk.sh +++ b/tools/deploy_kiosk.sh @@ -17,6 +17,7 @@ ssh -o ConnectTimeout=8 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/n echo "==> 同步源码到盒子" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$BOX" 'rm -rf ~/vdi-build/repo/kiosk-shell/src ~/vdi-build/repo/kiosk-shell/tests && mkdir -p ~/vdi-build/repo/kiosk-shell/src ~/vdi-build/repo/kiosk-shell/tests ~/vdi-build/repo/kiosk-shell/scripts' scp -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$SRC/CMakeLists.txt" "$BOX":~/vdi-build/repo/kiosk-shell/ +scp -q -r "$SRC/resources" "$BOX":~/vdi-build/repo/kiosk-shell/ scp -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$SRC"/src/*.cpp "$SRC"/src/*.h "$BOX":~/vdi-build/repo/kiosk-shell/src/ scp -q -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "$SRC"/tests/*.cpp "$BOX":~/vdi-build/repo/kiosk-shell/tests/ scp -q "$SRC/tests/test_display_guard.py" "$BOX":~/vdi-build/repo/kiosk-shell/tests/