From 162e72e55d6c01d530d6ad98d2c73c217c54eab9 Mon Sep 17 00:00:00 2001 From: krivoshein Date: Tue, 20 May 2025 15:39:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A4=D0=BE=D1=80=D0=BC=D0=B0=20Check=20=D1=81?= =?UTF-8?q?=20=D0=BE=D0=B1=D1=89=D0=B5=D0=B9=20=D0=B8=D0=BD=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D0=B5=D0=B9=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- InstructorsAndTrainees/CMakeLists.txt | 3 + InstructorsAndTrainees/resources.qrc | 1 + .../resources/icons/check.png | Bin 0 -> 15654 bytes .../tasks/ammtaskswidget.cpp | 17 +++- InstructorsAndTrainees/tasks/ammtaskswidget.h | 2 + .../tasks/ammtaskswidget.ui | 26 ++++++ .../tasks/dialogchecktask.cpp | 31 +++++++ .../tasks/dialogchecktask.h | 33 ++++++++ .../tasks/dialogchecktask.ui | 80 ++++++++++++++++++ .../tasks/fimtaskswidget.cpp | 70 ++++++++++++++- InstructorsAndTrainees/tasks/fimtaskswidget.h | 7 +- .../tasks/fimtaskswidget.ui | 32 +++++++ 12 files changed, 297 insertions(+), 5 deletions(-) create mode 100644 InstructorsAndTrainees/resources/icons/check.png create mode 100644 InstructorsAndTrainees/tasks/dialogchecktask.cpp create mode 100644 InstructorsAndTrainees/tasks/dialogchecktask.h create mode 100644 InstructorsAndTrainees/tasks/dialogchecktask.ui diff --git a/InstructorsAndTrainees/CMakeLists.txt b/InstructorsAndTrainees/CMakeLists.txt index 2f416b3..b5fb663 100644 --- a/InstructorsAndTrainees/CMakeLists.txt +++ b/InstructorsAndTrainees/CMakeLists.txt @@ -80,6 +80,9 @@ add_library(InstructorsAndTrainees SHARED tasks/fimtaskswidget.ui tasks/tasktreepreparation.cpp tasks/tasktreepreparation.h + tasks/dialogchecktask.cpp + tasks/dialogchecktask.h + tasks/dialogchecktask.ui #tasks/tasksAmmFim.cpp #tasks/tasksAmmFim.h widgets/newversionwidget.cpp diff --git a/InstructorsAndTrainees/resources.qrc b/InstructorsAndTrainees/resources.qrc index d2a1133..2228176 100644 --- a/InstructorsAndTrainees/resources.qrc +++ b/InstructorsAndTrainees/resources.qrc @@ -44,5 +44,6 @@ resources/icons/assignTask.png resources/icons/delete.png resources/icons/filter.png + resources/icons/check.png diff --git a/InstructorsAndTrainees/resources/icons/check.png b/InstructorsAndTrainees/resources/icons/check.png new file mode 100644 index 0000000000000000000000000000000000000000..3163b36fb21899a89245b41b654f12bf8ce7b0a8 GIT binary patch literal 15654 zcmb7rcRZEvANPGoLPjX0gR*ya9pr@K7*UF3B_TT;JDi4D_6k{rQ1&LHkiCw*_c-?6 zGqN0iLPk(>^qXLKY;+~95vLDYxLsiaG7g1e^j{X_e(o%Y7 zm-#I<)t~5S`?lQ!{kiQoQqEiJ>TY_g*T&zBj;$76BLQCi|NKaWc~L-#dC#IQ3gpPT zei;r7D^SG3LQSOCqu8umCbL^ZHJgtdHS8>Gw7T34sR`50lS09g*2~K0^`kj<+T?c} zquLqf-ZF*Ybkb7{s+^3Qv)MQE{+^?vC4w6KdN+&OAKbs+Zi_>se4;k{1x5sM2Ws%%WZ9w(fV_h2lq9gFe~S2JU`B9hfhp11l(>&W`Ray+$1+p4SjpWsE_Xm8yLA zX$!q4pqI}JKdAm2UkaK7GlvmDY43>O#|rFuv25_m2<4)It5H?ov&;93lfobu1sKHB zlxc+<-xqeji%sq@yOCSpdS}E*eM)BGhO(RwY{Q=bdaStUGGscmHoq+#M~_fWKB*9Z zOK-==4+MRnAeg=cYQXHY{gx;>jADmhLnu!(iR^Z{X%!x^ps84FxF940|FfO`EyL{7 zFS>L7o>fhC?0UD2=i=3d-KW09fu3~vO-HNFv8;Tkrr4?(gO;D?yS<$g-L|}Je)3?R z1<9liVMw0kST-Aab)PgEuU?2t5%2GNQ?M6OX<;Hwiy)yAA%$)}P)Nu#8(c99yR(EH zQ;MNRs09oduQYd^Kh+)E&>jNg?u9%I`unOguRe8k{UE<(TL?w$-KH_c6tPw6{c^gj zhnI5r65=8i4JpL2sXm3p_OLhU%B@M8?A5P>J}wEFEVWJh&+@SzUk={-S#B(o~gAJ zgSFz=i#(^2!$tNUt<59){7X^C{Vg`5tcPucda8syQv1KUde!1Zje9SB!!;bqi?=7c zSUaXA*RaVb=GCyN@^|5wB95FwkMn{LoO-tkjw)5^?*$}6iENwg47a{ocejTOphB;l z`?TSUTGT80t-7nT5Y%94^cAfkq$<7~U*tX|7sV_tI{Lm?fI&C-bKp9g^nL4kC08%{ zgWRhjTfC)XE0M#|pI4Ta&C6_l5le2pBmS;3dfUkQI%`vD*vc*u@KB?e=Ds ze=2t;^c!s$`1_l-d1F>7KNE%|LeHxLrQCGfa@CJMC-3sa-z`zi^I`W?!J0JQpTUVo zFGs#9)>RFi<_H^FszoO%`*Q~WRcgaU~OMat9^+aetzH{tU4cY<|jjpM|!e7`(@cV*iDmr zC@pf;f%RO!CI9PHT+kkkm2wf&_gb6aqXw{+sr0)?9;8=*HR%HU+(76D3XG+h4q^?) zjuT`!L0bQ+ra3eN3(}@6@!cYIXiessB(cnmuFEf)nHype(OH%TgQxo)cZ1=&1Q>J( zr&Z8JbfYC|o(tk>`RS&oH6`3Ag{J*bM*(%8G*r*gpCAKXufAIBKiEw&Vv%x$%ylj5 zs~I@-7!kx6^ZY=E5!D~E-;uXyF;|OnjMf~|k9_>+_C25(k;znv9S5;fDKyoGyRfu} zK28+kYIapR*d(wJU6`GaOS9lzqx7%T@O*3I%~cR5ha5t6 zxu4?(v^C7t`Mggbo?b(o%kUvkXC0J0JXOll@@j*zln-wW?xeiWri>%(0S&se;`ng> zB9zzODj4ylxkd~_piT&u?ol3`agsgc`zO~bj*#;M#oMNDP&ee{&WAn^U9vqy&tFKB zB1N_p^27JWUTjl7w+yt>E1Q`~l1t3vf^N@YiIPMh-yrRcqz(pk?cwArdCH(^m19vMU&v`B`8Ar&@+%Cq^cY^Zy4c#v9#p9nHLh1}l&~(QnyM7fvgRUSh z7(`QkH7VMxi)>{fH>BgPx<3BBh8#{XqX28TE+NASnze7(=A^`A zOTuFMtbHJ_!M|~}ZcGO?cs|bQ?vs8YNEWj)l%V3l}ADmdz?nQtzTC6d|Nnvs2k|UHuL%M#`3-1P()b zM6=H+wYAwkP>1Zky5q(dji1qi5h=AvSLArH5`iWSCnjRy9Ih2~f~DP>qPuVZKJ&}9 zr~Rc?h6{Bv{<6f08@edl&aw#NVH(5*4)3=igjth5bz{mKK)3Kx@I%|%^(08%eCnHyT3GiL(7Zw8)SV*2^JB~i;=ev_&<)Ym zg6*(HPKj+L1Rv<{!q$|-Cu0RUHl@oXaYRNS>K_(3Bpm!FC|L+q5P!Uh_u-)zatW!T z|J%1^MTqi(&z%3vdWTFm^z@1E_)xsV;tO=XSlB&_FjHMDEN{df_ay#jLqUgmiMN8%L z0+CyDU{+My+nTNSzFfSQWS=OiOW=#Nn5+KLx=n-n^_mdbo8q?=U{M}>!iuI^VkTml znoTI2N-Qf28B>g5M36z@^GS~#KCUjuuRoni(r7BM-9u`|EqUP@!?RHyZ@}VqQplIxI~HrM zQKQtLf=>wvYaQR-_dO!W^K*lQXaCy=;TZ9o6i|O-6=%&i8y&ZirRAjeKHX^tMhS8cY>Jwn?0J?`UF?Q8zbdo7dp@}jg+?1qD^_pe;v`0v?eeKXO)GZ)^<27?1@p5lAwWNTj_Nqe}uSU%l zIr~)27H;-&)~Ov3REIG|ExxdMwXmXN?I!D!ewh|yUeXZOt596oIxHiIBTAZrkoTou znb5UMr>&PI=)L@wR5J}HN_>}KC(|NS z^dCYziQB)H^TR?q?cc15oe+XdhEbHZUg>-0zTQ-*)jCR#P#IN+nqK|R%gjW@#B<^- zQ5yI{U;2%(5?!(fUX_>gHGL?;=x8w{_7(}V#05&cMw(~c&@4|w07O}sp#Jf1z;EV`zDDkVcQy06tUhC;qgyJhPJqRS4vGJ7z zn)l3*dFzO^qpg8fS8LMy50Ao#p5L7tpOp9T(#9JU8WJ}9s7$xzATdUd zP!yZ4gjx>Aks8O=I@kBzz-Y+->4Em4vLVl!?n2z-PjUDyy#EAF@7N#k!XhuImw^Qcy`dCNeF8w=sIRp@yl$_FIymtVgMLS3QU2_hP9_{yFcl6}9Z zS|y71_wzrXu6}2%qZ1~o$EtY>VHS9<_S_C~|zD&9M!y?piHsiGt<5!CAhXQ2k~cFK~k8%fZ3J)r;^K zzrONA!frbA7a+{w?4|avTx7^Y>{~iz*SmOkV*1Jwzn!LaT>s13L=dcGLlOsrAe2(e z=v73Gvpm=~o-}nZKu|E7liR)di&K}3VZj3*Y|9jW(TUK znQfD?P(a&rml3F|EPnenKmY|BkUM<)C~HdpW1bXK%1n(QgrGy7X9x+jcP{w4WT_f& zzh7(eFFVHHJ^_vZ@QoVHge7?Qx%=8#X{A;ZueO_-LRT;cXJw;Y-c+eD>cL)XqnU*v zmN~vkm#ccui^IW}4YZB`F+tLP<%MR8M8Gx!+L`fNz7S{l6Fdnm@}YpB>aG-8Ow-3~ zV;Ho-|91p;fecdwa1-#{`At4>e0)Pe))a!C8wjZ$h zrN5B_J4i?|RAo_4fj$UW(0jx@<3kQLBzzt4?qI-oWRB^p=HpN)GzElgRnELA(sYOg zU*e$?9c*gHZ3q%uov55C;zawd`{qGQm**nMAQmn04-_}`FVSI~WzZ1vj&rgEq;!c6 z0vHIy!e>9i47};_0wp33So1o#p>b|M6tOs}ivy*xuzO-!em^;`JVk-H#zfA``Aaq| z@`eB;;8yEQ1tF1}6lnOE06ZV*I$?;tM65{OzMhE?c;$CDPe(575h(dUOwR`rxGc55gWl3o^j}3&3Xr`hbgP0W(RFn z*qx*%eKNXc`NO<158B_@%Uh8Ov%&Ta=Sf1$j|ls zJ$*=O&_WQ(Yg9Q{(@Cz997xyi2%Uw}hM4_ay* zcDHo&Ag=?pBOKNyc{k<`s%&d0scSr%Z-aq$p8~T!ei4($#fF_zYiwH^>%(O`IUL=a zr*-Ct`dWEOdI1dnG?_QhfVyI`r*qXJKSSlL$M4v@xNLFlZV|2pg6AQ{g3yF?>4xW~ zP*T`ZLiE;vQ|Xl!lDKnf{_dBqy1}@-+aMNwp`S;)V#e6fdg?{eq%dS?i!^zh;f=2X zQ2LMSU^3bI8_%4oC@|&i*2y;z@YYCPukkB`K1(f7G9&48GmjE*!&RXso1_KfEqn|2 zUUd^8Lp=AO48h)r)5=t}$TnBKd0NGphwX_CWEd0gK!}A&jpFpF*2$r3-w$2YF4^yC zR;cOhuR-NdNh>+n^PGJfNSG8v28qG~lD zC|*M!)QhN$YldK|F`jMX6G?KPvBuQnX=v&R*$^PdR(~Q1&r$-_y*pbl`ZkFEz(Zb%Bk3qJT1<|v4JF)A3apHH%t%Xk^c^|!k(KqK49zZd&ct=< zmvPX&UHzE(lic-?Kl_vWo>0cJ)v5b(KOAwl)gn!ev5g%5;^$W$@Oi&fjj^)a97M&$ zd-{C|oQ_~Bm6mvn%co7~%EQZ;$>cH-V{_6tLgdq*M+u>21pwD1E$Noh{V5}j4$SpU z1!=@+^Hc3IE7#=aw3vlRVMc!OemacFzN_Rp*h4yC_lOt@INkfuI!*GH9lz z=rrM3z7U#VX{!3AXz5L~@1uJlO}7u)rImWJfM894j$K-rCyRp)?fQJ^_=c$K$YQ>6 zL8v%A4l{Ew$NxN^IUTmvV_eSeob3r`QxzbGf2EBUgqGuuJ!kTqK7a%KMa`4;<+rWi z;E=XkINo~xIj72Vi1u@8FW!K0iCY9 z34)^Te)05}Hx=7jWpXILbl`ELCG6F5{{fxdy9h zYY!dMQ@l6`cmtsb&12u}`U{_jvzixH&%MlnO4zSf zM4Fzw9jqbuOxbU0PpMP@=!zeO<(l^*d%Lbtvo7qF0mAuha?6-BN#d`k`%xyFnr8cy z!V=0k%qu5RV29LB88;Ozysg$5qI_`r^Ygr8>qWA08D$#Uh)2v{RQVtD+5w2Dy zc7(@B)9jcR#YS?=5_HYIDb=iwZJ(otIgS74k#gU*oVRB!2X~J|{?@DKdh?LlRXip< zt>E4Eb`8wkm{etr_`UD;yJ@01@5iLtzj6A=^c^LPIjx3gyb%1oR>T*ZF&4 z_TK)@Bjw#@u~haE?1id>D7x?2i`JFb(Z1tE&sQBh%b)yOtTIuF<*V5LTw!qZkxsGk z)+skS%ELZktD;=x)J{_JoRHyO)Jm_unOU*ft6OO5@Ss)A7lM@TGRO{soL2)zT|Qmj zlKltS}eZvs2-g47=EeTQV6_*+CI^4h8zUQHE_YqI~We7C+o1E{i#z;WC<0bs_DpSrq+A=}vA~vf3|x#u|gr$X}h? z15N>_W`v)Z1^2l}GApp!ybLFW4auw=r3QM-o0^4CffI#*Q1NpKsl<&o>AQ$yhXEb) zs?CTj<DAq$-jw&InwuY<93tNQ#%5X(DSNVVi)7!GcL7_3 zt^HkNo4wUVohotn4GXui^uVTx7*AZuY|yFUpjq9d5dM6X{uh^#N7&&Sug1f5oC>_{ z5mz|alFXBNGInC;NWc>i;fZ^?KV_!dg-u>-b@`r|-DETQI0fo&7^i#biV|z{T8MqT zS~kho7p@qOa~@j9)~!y&W0c1K)nsafP3TcID@(pQm*EV1nuBgOP-+@pW%>4|?M+3x z)q{CjqnZcE{ak#fc`gN&3cOlelF6N%OP~Ht_YbZ-{+9fn$A#&G{p-|R-$mCWqi=V@nbsU=}Xf5F-_v{DJ{JrfsLww_~!dP63g9_hwJYZ z@qPI*zj7p4hYH8c)iqV2e;z$#I%(WDUFJGGMjH!4ewSrf%}h#zK3clek!=8UY;tMY@Te#i2!E{AYjh(l5TIi3nj~#=(T#5XB*FbV%w$E!53g_E!@aX( z%CRIGZ?G?FwX^CSJ3H~c)Xj&*Z;D{`x&@9R>EO;uVmSr}BV9Hy} z(GKnD$S8?)A^@vzV1!J@^9;_qHaqxF6{2eXhzGpwxxo%1-@PBGyBC(wRR3!@zd#(f zi*_Wd@jk+0^_p`8N+EpeX+vdtm@MaosoFZMOx!a@b`0Z*Qa!n68b?^*tK}t`tZVf= z&05+qgObg**J_il6#q#;Pfi}m+-NBB#P#neT$pVvZ?^rCM~kUlvYNR?F{!>d^u^O& z*F%svXW0NzbbP5}sM$7{#M6uaX;ER%%l1lO z;R%B0X1RQQH>iSq4&^u-yrq`Uovl8eFW>g1(8O2J2tpxyZr|FvhfgyZObwcQ)NR-PIms_3EKnfaAsVLvlY%-O7E4YQogFTQ5* zgx~nq`5X2M30r&OO4TA2+qZCe8WA|^e~}I`jP8da$$3(-l%9)8MlZ1>AEopE7ug0; zw>H@d2)gziuLaORbjpQK@tP|$1iroCJ{86Bolxor&6RQicY`8<|3Vnza%X)&8CG4A zIl^_^C!M76vQNh#GOqc*M#)dE`!OY6Gf<_WcbB;g3#;UtrUf$Uk|#C)l-mZF-u z2{d*=VlicPH7ybK_eDSF_(oxsfD z|CKDzm57?UX}nLW#DDC1JMeu;z?GEEY_Sn{8A(|Ccd$hKYoU;cvNcb$ZIdlkV`iq& z+8xwplf6`}U~w{zjvQtTLf9+a`W z-qT~D*}^xpxZCW?Y-iYgqK$n8R+KYCk^dRGEhPNxJ8zRqb>0sHFrV4%0bJ{OjU}ZU4d&gijvw;ky;B&r`%S?|wFaYmOu?@-dy{N#6pf~G< zX6{{2B5v8$ReI@266;%KC1`G3^VOPq48p6Y0B1s=cHDQ{Do&&N4)0Wfb9c(fuTi?v z3BM(BJc|B}nmBv@we=!>i6)jILW+2@j*;-;gP%tsk}J}SnuUCs-4nbAHOX!*Cqa$k zPk>>%C_;4s;9bYx5bm82rTE0JMB{I>Qr|vyjA4s(cGe7sQ~*78dwSMm$D22XnAauL z{|ba!ShPN>O5LdZ1?|g{R67eDg(%NPZD*P9-%U}|SSMgXfkxD`9T#1lll{U4qX&4F z-GT&pkc8*gtDG51uz3JQW7%AMl9zjKF;B{qAk*nj8rZwqYDrhM-SeN!+>Xqkg-~Tq z#zqOz?rG2FD7!KmrHa^mumA3_gL#I3$x1i zr_JMY%q1bUL8E6JxVPpBbhd_^P763#?%5CK!`lYq*s$mhGYL<2DANA8Bn8hLK`_x&Vk(!lrVa@Qww%CaUGPOQ!# zyV@nq(p0aucS}a#`K$KP5^+p=hvSWDa-jS@n?r(ofPL<1Mq% z_K2TM`Y7chh|aU(j2VuoERr}v+r)FzbT!QTb3a_Q#5`}KNx4~xkfDw#a?Il%P`E#J zu*^lzZj8)|ij(PVKuI(=#OOA=q7+dnhgF~F^Ce_wk)c0HgSoYA#|KE;JDnX2Xd$!J zW61izdH$L&F*}O~FhCG?nlSpL^%Rb%uN2rk^+46O zgG4-+c4}p!a3Nt%RB2yN95*hc14TvYNHAHmrV!v!@cRp+gW)%91n)c*~f3Dev}ivU<`X>Q7#lL6%F=<-FTlUw{Q>VBzM` zLk()3JlC1GlCt&v2`Y5>f!6brS;mr2WA}AomIp^mQV9 z4n}ZK{h9*#;4O!~_-24%KM^H*zTHIV)UfRZJ{D9$ZUfIgwj9|5$dNOqxu+BK@gPo4 zOL>qQwCo;98ouhsr_=Bni4PQKXL5XRm0CUljxn+)+5xYhn3VCP_EgbogP#Ye8&{EjAQ! zuze)S=Ubr0xai8u|6t7f9JrxSZ@D?-9d&}gK@*g(l09ziTLU-@V9Nck?`j{g$B@rIQo-n{aFtkfJI-ng1uH=xd`f#BXI^p zY@FK~Rq(O%6&doyS19oY7py&Cf>KIPNEHA!mpp4q3mq;}pkjbfXT$7&$!4wNq43)Y z$|JudhmlqdIUoA$S56R{eU!M@gSSU7ILEnxRc)(_@aH!Gni<;o^<*u?Jsk3u$zcZQ zQyLj&`l08ZuN;3Ac(gXG!nCc{t)LGTNTZ={?`M3li=NL<9}N_BFmT*hAsBBPf*y($ zJ|+MS*i?S`@B8MxC&Q?&i_k+_f~iq=$4+6ls!3 zqWDbi*)!YxG}Bkz6MFtTL>GMx;z4>~rk4!6C;cAaYq`K31E#Y_fzR^gCBr9TlDg5Gm@hLQqvwj15y}q6FBSv*3gGSNWb$6COzh=!=`K{ z$jxmfN@a_q9jN$?{GPK@9+Dwi)dIlEFYvtjv*mEwM= z$o-O};rbzab(IekO7>zKq=Xk5?fRnIdQz3Gg#xbp@I0A#hzr$GVLr`B|Ezg>gdAm8 z`dUH9KS=O=g%*%PmDh&m6H`nAKJlY@#_YrWs@-;=X>E73*oNw6Aq8jVtUSfRuGN0VnX+ynsvZ z(5S1=^Lhn1jcVxg!ylz;`B^%5qmSE@Pfs=b;zO3C-$K(Nv4Mbcz!NXjM9}(RsZQAn zXDZ`~oGXqjnTD=hzqCViH4z)Nw1O>D#R{IjIykY>bs9UJ_N-YW&Zq;Jktuz)FBzsC z09T*Wx>F=qBUXMnt#-sqcNNUvG#h=3HO$xT`mPwpxO3tp=cYU4lYGc5F>?BOk&-gz zyrYy0oA({6hF=}9zr0O00pP%zpes{q7ImYQ5^4zOUW`oz(#84FoJ%tr5IMQXtltDB zbU|=^vZzMZ=ZsJ2wA4Ri7#{te`o#t}hAF<>Bmj)h^K3<%bD#2{r?nD#5VXM_fabWT z4Go8KWfz10a@xvBp}p~Rf})4w{5e2SJTeDd9w3pPL6b*0fFUu;<1&5pg@^@P1mvWw zL3SMXw4hn{*NLbsGcc5(wGYw%cz9ntFVsz*@=zR5CLWg+I20se!J>nDEHt0KZzoUf@Hp)U4Xsnz~1dkt(BP zfP(F_MA0A4SS!(gJk|^1#H+)_9|G|eQx8nxD}Dp8UvZzaCy(}x{ynLV!&6iAq{up# z7mRXeWXQtRtvsDy$7?%(7>aL-De2u#ORMfGmGR&$1=#W% z*l)Ltb_j9YSOCe4wVYUnr*8pIKo$P!y{I~}zTUyj!82G7?e>(tTuX`E%M4wR1N89p zU>diJF@6V?^j_uh7TC;m_jPSCmI_>qBZPu&R!-hZUG(JU1j)5G(_CKww+c{JXgW-p zZadRln*pIvIz35UT{(y#E}tGfBXVVi3%}Yt*(^=657)4EgyIXbe%MB%62R^U3TD*W zfe)iS=BZ{P%i$PKkS4xxm_;OeR|A&L_NsW_K*f)ks%r>E_GvuR^G|$o8RY|{vygAo zdy|vV(X7Z*Qh4$sJ13Io27qsu5lr<6ujPFYgV+x>YZNy^r6@hQ=Om#+^JV&5b;-@_ zt$30>7!_20^xl1hUo7`k%Qi)I{{(sj+7wGMBu- zyW;oBB#ZgC&|Bzee%tihK=zPkJ2c~=@!O#%CO&fPOo~x`iyv?Y7ZV^YS&7*d_$TX>|)|Wv2d?uVQTL?#hvUx;ap?3+&;1k1@r{gv%vt|>39Z6Co zLm`le0!^GCjt`|F_dkt^G`D`4^$cwH!yof z8S}`2xP8@Q?7I$Ih~*p8&3xrqrf%nvc7eRk4#SN=0`+_UN#Rq3-IcIQcw4MYBAe~K zGNW&{7hv@PWE1)#PeK&c*NVE_2Ix|!TzLa1aWLFWqa zS}g0)W$Ywgc+|9_*os&Mx>sIw@UuFRMOda@4|;C+wrYLs76YmduZV zA8;qZZsn#@;y`WPr*xn{&j+cCugECv(2g~%wO=7c{ymdm`?Q!HFiN=J2HLXEToUg4 z!S7?$bkB5C`Qx~fbHPtI-I5B8*K|x=E%4GTfvi<#yVqShF6nCGxrD(_By?Ge<_fEM~0-Qgi1$Q zM`=I@nca{Km`HG^#a#HQ({q%-aaa#ls&SXnJHP?`xdvSko&xvEbmk-i* ztiMhy;SOY?;od-1mzQY&+IG^ToXZ-@;}l~TTwS*Q1w>`x-gl`(+{$BCLJ!5jB3vy} z`s3pSGaV`N<<zdN+*#(bh8Vv+q}Q)H;N914785ppj(Q}GcRDZqTYlZYieP}nl? zqFdNt=+L=KOZI#9o;q}+aQAr7Q5&r3=26-kYGnh?%4W%2&?UwJ={0s#kars_kwd!3 zVq+)U`=7?pvW9%qDYhGqAjZU?d;V#+&ixG{peik>wDw{p3TrF7heX2YLhl6<1QU7{tO%pb@b$`?G7|1UgAq`d=?g?Gro$h#P%l1GAhmBt(cAkF1dF);FgbpR^#tKyk!jiPax2$4p+XQh zeIy8$6VPD*RUIkrKWJnpMN){R28=~+spFlR_5apaZ5c zLlI8f{fhJSTr#A{2LTT@o`gE$=|%G)h15MUAmkMWktm$-pS>HM1+>D*Un*rLHJ4l8 z1I;7;P2{KknNWYw^S+NB>MFH}f#zjaq?%Qz4F4j0-lF26jK}goSvycRs^rujY+feA zVhorNgghS&2!Fz?;P0yUx~STox$?(_vwfqxx#k;J~Sa zy&E`ML+{Fs^_(_`g4@^ATjT3i_zs0>N3xF;UgSU6gKD^DQIcEa}_~? zX%gBM+{!e+6E#8U2ZyBO+!Rhr1KtT$f$h+0|MwK2Z zhcYt&C9q$f8(*%5o0d4($&loEDFb1D#YjLgrRu=RBa{KH4AZ&V46eS*avDW~CVNu@ zIfR&F#Kw}FoR?v8J__vn){Wv#1)akZWfrejJ*~@CD(h)3hnuHzir=}s+>8iia}3tq91%6hatWQ~8E#uZgpE8>@#kIDyS?}u z$v}096#8p#Ib^Xua(;Fs&(l5ehgo6_rvW-oVky32c`bQ< zvsF|uVwQcQW*X7mI;-fBmds#`7`fl*!I@IE@y_$RP2JBPV}yYDIUPHR{`nT>xa2y&!Z^2d@sM+% z%B7hpRwF_D%VF&y^)uPI-(8j=KP(EKdiESxq{>`Hw49vL@NTJU(xR##iA(nl{f6!e zx1x8`L$4Y)qQm;i3p7^T$g<5kjALI`mX0_6ec?W_d#3q47@&T`2%9a_I|rboNq58L zE2DeMwH3yiQklI138rC!1O!dV;9{7mhU3b<{j&R8>eXk03Ej!fPFH*afx3LAh5}ND z0sPcpb=E+0pDE<$lc4B*vkE=_(<_Jz!4gXlbh)EE1IMXvuuF{^Ba35ywjy&Cbzi?_ zjhN>>9LQpa2PKQ+msg^cW3D1pue~WAzEfuXq$}dcl3)EcE!gwmFC-||feSk)eCSBa ze7EpDx86+46TNvh%VYUTSJQH0$RWc8kJ%QoBp8lP$*W)-=NNg)MH^_cM>tSV0a1nQw4I#J z#BV8jyqxE2f1O>*zpU4@71nVV3il>}-Pa$R5v+P7KmT{v)DFK8@hZ_ZpiSyL z4Lb@n(me~){>Y3JXV~i9YbQ$l3Ig%qnoC=ec3lCe?PBR{)c)Eo%0sV4G06fCQySk9 z$3URaN=c!>vdk!-OH^{Pa*Sjfp)?;(M=30}cUyE+v+@m;harHbhw+^Aqy6<2$1f@$ zr(^iL_)z)rdkK~y79XdBP&*1DRs10%WvS&Za@G9+kNE%kLG~QWFlz=Kb8AMe;Xg#( Mdmx`B`~2Pi0b}``w*UYD literal 0 HcmV?d00001 diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp index 87da14c..24f5a02 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.cpp @@ -54,10 +54,15 @@ AMMtasksWidget::AMMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty ui->btnDelete->setObjectName("btnDelete"); ui->btnDelete->setEnabled(false); + ui->btnCheck->setObjectName("btnCheck"); + ui->btnCheck->setEnabled(false); + ui->btnOnlyActive->setObjectName("btnOnlyActive"); if(type == TypeList::listCommon) ui->btnDelete->setVisible(false); else ui->btnOnlyActive->setVisible(false); + + ui->btnCheck->setVisible(false); } AMMtasksWidget::~AMMtasksWidget() @@ -89,13 +94,13 @@ void AMMtasksWidget::resizeEvent(QResizeEvent *event) treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 50); treeWidget->setColumnWidth(ColumnsTree::clmn_code, 250); - treeWidget->setColumnWidth(ColumnsTree::clmn_status, 50); + treeWidget->setColumnWidth(ColumnsTree::clmn_status, 70); int widthPMorDM; if(type == TypeList::listCommon) widthPMorDM = width - (250 + 10); else - widthPMorDM = width - (300 + 10); + widthPMorDM = width - (370 + 10); treeWidget->setColumnWidth(ColumnsTree::clmn_PMorDM, widthPMorDM); } @@ -239,7 +244,10 @@ void AMMtasksWidget::preparationTreeWidget() reSetHeadTreeWidget(); if(type == TypeList::listCommon) + { treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTree::clmn_status, true); + } } void AMMtasksWidget::reSetHeadTreeWidget() @@ -327,3 +335,8 @@ void AMMtasksWidget::on_btnOnlyActive_clicked() //connectorToServer->sendQueryTasksXML("amm"); loadTasksAMM(false); } + +void AMMtasksWidget::on_btnCheck_clicked() +{ + +} diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.h b/InstructorsAndTrainees/tasks/ammtaskswidget.h index 10f3232..735485a 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.h +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.h @@ -52,6 +52,8 @@ private Q_SLOTS: void on_btnOnlyActive_clicked(); + void on_btnCheck_clicked(); + public Q_SLOTS: void slot_AssignTaskAMMtoTrainee(); diff --git a/InstructorsAndTrainees/tasks/ammtaskswidget.ui b/InstructorsAndTrainees/tasks/ammtaskswidget.ui index 9d5f36d..31c259b 100644 --- a/InstructorsAndTrainees/tasks/ammtaskswidget.ui +++ b/InstructorsAndTrainees/tasks/ammtaskswidget.ui @@ -69,6 +69,32 @@ + + + + + 50 + 50 + + + + Check + + + + :/resources/icons/check.png:/resources/icons/check.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.cpp b/InstructorsAndTrainees/tasks/dialogchecktask.cpp new file mode 100644 index 0000000..0a4df0b --- /dev/null +++ b/InstructorsAndTrainees/tasks/dialogchecktask.cpp @@ -0,0 +1,31 @@ +#include "dialogchecktask.h" +#include "ui_dialogchecktask.h" + +DialogCheckTask::DialogCheckTask(QWidget *parent) : + QWidget(parent), + ui(new Ui::DialogCheckTask), + fimTasksWidget(nullptr) +{ + ui->setupUi(this); + + fimTasksWidget = new FIMtasksWidget(nullptr, FIMtasksWidget::TypeList::listOneTask, this); + + ui->verticalLayout->addWidget(fimTasksWidget); +} + +DialogCheckTask::~DialogCheckTask() +{ + delete fimTasksWidget; + delete ui; +} + +void DialogCheckTask::setTask(TaskAmmFim* task) +{ + this->task = *task; + fimTasksWidget->setOneTaskFim(&this->task); +} + +TaskAmmFim DialogCheckTask::getTask() +{ + return this->task; +} diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.h b/InstructorsAndTrainees/tasks/dialogchecktask.h new file mode 100644 index 0000000..0be7f07 --- /dev/null +++ b/InstructorsAndTrainees/tasks/dialogchecktask.h @@ -0,0 +1,33 @@ +#ifndef DIALOGCHECKTASK_H +#define DIALOGCHECKTASK_H + +#include +#include "tasksAmmFim.h" +#include "fimtaskswidget.h" + +namespace Ui { +class DialogCheckTask; +} + +class DialogCheckTask : public QWidget +{ + Q_OBJECT + +public: + explicit DialogCheckTask(QWidget *parent = nullptr); + ~DialogCheckTask(); + +public: + void setTask(TaskAmmFim* task); + TaskAmmFim getTask(); + +private: + TaskAmmFim task; + +private: + Ui::DialogCheckTask *ui; +private: + FIMtasksWidget* fimTasksWidget; +}; + +#endif // DIALOGCHECKTASK_H diff --git a/InstructorsAndTrainees/tasks/dialogchecktask.ui b/InstructorsAndTrainees/tasks/dialogchecktask.ui new file mode 100644 index 0000000..8d2ffc9 --- /dev/null +++ b/InstructorsAndTrainees/tasks/dialogchecktask.ui @@ -0,0 +1,80 @@ + + + DialogCheckTask + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + + + ID + + + + + + + Title + + + + + + + Status + + + + + + + + + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp index c9090aa..58528a3 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.cpp +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.cpp @@ -7,6 +7,7 @@ #include "fimtaskswidget.h" #include "ui_fimtaskswidget.h" #include "tasksAmmFim.h" +#include "dialogchecktask.h" FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList type, QWidget *parent) : QWidget(parent), @@ -44,8 +45,18 @@ FIMtasksWidget::FIMtasksWidget(ConnectorToServer* connectorToServer, TypeList ty ui->btnDelete->setObjectName("btnDelete"); ui->btnDelete->setEnabled(false); + ui->btnCheck->setObjectName("btnCheck"); + ui->btnCheck->setEnabled(false); if(type == TypeList::listCommon) + { ui->btnDelete->setVisible(false); + ui->btnCheck->setVisible(false); + } + else if(type == TypeList::listOneTask) + { + ui->btnDelete->setVisible(false); + ui->btnCheck->setVisible(false); + } } FIMtasksWidget::~FIMtasksWidget() @@ -65,6 +76,12 @@ FIMtasksWidget::~FIMtasksWidget() delete ui; } +void FIMtasksWidget::setOneTaskFim(TaskAmmFim* task) +{ + listTaskAmmFim.append(task); + fillTree(); +} + void FIMtasksWidget::resizeEvent(QResizeEvent *event) { QSize size = event->size(); @@ -73,13 +90,13 @@ void FIMtasksWidget::resizeEvent(QResizeEvent *event) int width = treeWidget->width(); treeWidget->setColumnWidth(ColumnsTree::clmn_ID, 50); - treeWidget->setColumnWidth(ColumnsTree::clmn_status, 50); + treeWidget->setColumnWidth(ColumnsTree::clmn_status, 70); int widthTitle; if(type == TypeList::listCommon) widthTitle = width - (0 + 10); else - widthTitle = width - (50 + 10); + widthTitle = width - (120 + 10); treeWidget->setColumnWidth(ColumnsTree::clmn_Title, widthTitle); } @@ -102,6 +119,7 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, if(current == nullptr) { ui->btnDelete->setEnabled(false); + ui->btnCheck->setEnabled(false); return; } @@ -119,12 +137,18 @@ void FIMtasksWidget::on_treeWidget_currentItemChanged(QTreeWidgetItem *current, accessAssignTask = true; ui->btnDelete->setEnabled(true); + + if(task->status != "new") + ui->btnCheck->setEnabled(true); + else + ui->btnCheck->setEnabled(false); } else { accessAssignTask = false; ui->btnDelete->setEnabled(false); + ui->btnCheck->setEnabled(false); } Q_EMIT signal_currentItemChanged(); @@ -268,7 +292,14 @@ void FIMtasksWidget::fillTree() QTreeWidgetItem * item = treeWidget->topLevelItem(0); if(item != nullptr) + { treeWidget->setCurrentItem(item); + + if(type == TypeList::listOneTask) + { + treeWidget->expandAll(); + } + } } void FIMtasksWidget::prepareListTasksForTrainee(QList listTask) @@ -291,7 +322,10 @@ void FIMtasksWidget::preparationTreeWidget() reSetHeadTreeWidget(); if(type == TypeList::listCommon) + { treeWidget->setColumnHidden(ColumnsTree::clmn_ID, true); + treeWidget->setColumnHidden(ColumnsTree::clmn_status, true); + } } void FIMtasksWidget::reSetHeadTreeWidget() @@ -369,6 +403,9 @@ TaskAmmFim* FIMtasksWidget::getTaskByID(int id) void FIMtasksWidget::deleteAllTaskAmmFim() { + if(type == TypeList::listOneTask) + return; + for(TaskAmmFim* task: listTaskAmmFim) delete task; @@ -446,3 +483,32 @@ void FIMtasksWidget::on_btnDelete_clicked() } } } + +void FIMtasksWidget::on_btnCheck_clicked() +{ + QTreeWidgetItem *treeItemCurrent = treeWidget->currentItem(); + + if(treeItemCurrent != nullptr) + { + QTreeWidgetItem *treeItemParent = treeItemCurrent->parent(); + if(treeItemParent == nullptr) + {//Выбрана задача + + int id = treeItemCurrent->text(ColumnsTree::clmn_ID).toInt(); + + TaskAmmFim* task = getTaskByID(id); + + DialogCheckTask dlg(this); + + dlg.setTask(task); + + QDialog* dialog = new QDialog(this); + QHBoxLayout *layout = new QHBoxLayout(dialog); + layout->addWidget(&dlg); + dialog->setWindowTitle(tr("Check Task")); + dialog->setMinimumSize(1600, 800); + dialog->setStyleSheet(this->styleSheet()); + dialog->exec(); + } + } +} diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.h b/InstructorsAndTrainees/tasks/fimtaskswidget.h index 94d556d..df65fe5 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.h +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.h @@ -18,7 +18,8 @@ public: enum TypeList { listCommon = 0, - listForTrainee + listForTrainee, + listOneTask }; private: @@ -43,6 +44,8 @@ public: } bool getAccessAssignTask(){return accessAssignTask;} + void setOneTaskFim(TaskAmmFim* task); + public: void resizeEvent(QResizeEvent *event) override; protected: @@ -54,6 +57,8 @@ private Q_SLOTS: void on_btnDelete_clicked(); + void on_btnCheck_clicked(); + public Q_SLOTS: void slot_AssignTaskFIMtoTrainee(); diff --git a/InstructorsAndTrainees/tasks/fimtaskswidget.ui b/InstructorsAndTrainees/tasks/fimtaskswidget.ui index 03e934d..f47f06a 100644 --- a/InstructorsAndTrainees/tasks/fimtaskswidget.ui +++ b/InstructorsAndTrainees/tasks/fimtaskswidget.ui @@ -34,8 +34,40 @@ + + + + + 50 + 50 + + + + Check + + + + :/resources/icons/check.png:/resources/icons/check.png + + + + 32 + 32 + + + + Qt::ToolButtonTextUnderIcon + + + + + + 50 + 50 + + Delete