From a375322955dce53a30b19345f1b1d5bd50595093 Mon Sep 17 00:00:00 2001 From: shibakaneki Date: Wed, 25 Jan 2012 08:47:02 +0100 Subject: [PATCH] Backup --- resources/images/licenses/ccby.png | Bin 0 -> 4739 bytes resources/images/licenses/ccbync.png | Bin 0 -> 5145 bytes resources/images/licenses/ccbyncnd.png | Bin 0 -> 5281 bytes resources/images/licenses/ccbyncsa.png | Bin 0 -> 5460 bytes resources/images/licenses/ccbynd.png | Bin 0 -> 4880 bytes resources/images/licenses/ccbysa.png | Bin 0 -> 5083 bytes resources/style.qss | 20 +- src/customWidgets/UBWidgetList.cpp | 2 +- src/gui/UBTeacherBarPreviewWidget.cpp | 245 ++++++++++++++----------- src/gui/UBTeacherBarPreviewWidget.h | 65 ++++--- src/gui/UBTeacherBarWidget.cpp | 16 +- 11 files changed, 207 insertions(+), 141 deletions(-) create mode 100644 resources/images/licenses/ccby.png create mode 100644 resources/images/licenses/ccbync.png create mode 100644 resources/images/licenses/ccbyncnd.png create mode 100644 resources/images/licenses/ccbyncsa.png create mode 100644 resources/images/licenses/ccbynd.png create mode 100644 resources/images/licenses/ccbysa.png diff --git a/resources/images/licenses/ccby.png b/resources/images/licenses/ccby.png new file mode 100644 index 0000000000000000000000000000000000000000..822491edb993b072fc183a2ce23adfa8c94cee7c GIT binary patch literal 4739 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 RjS2t&002ovPDHLkV1k=~?l=Gd literal 0 HcmV?d00001 diff --git a/resources/images/licenses/ccbync.png b/resources/images/licenses/ccbync.png new file mode 100644 index 0000000000000000000000000000000000000000..5f982147075ad08691e3b3c53e92633ca0ddcb2f GIT binary patch literal 5145 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 z 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 literal 0 HcmV?d00001 diff --git a/resources/images/licenses/ccbyncsa.png b/resources/images/licenses/ccbyncsa.png new file mode 100644 index 0000000000000000000000000000000000000000..0f2a0f10722d3fabffe8af5d5eed09866e25909a GIT binary patch literal 5460 zcmV-a6|3rrP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000VaNklJyRN8J52lge3Dk<@*>AXrMmGP=H z$s9P2&*V2vPMX-1L}oIXPMP_nlH^n>#fZ%$`c@)Y4M0h*N)5H*Dy5UhPr>W;VqjnZ zld(w!&=SoOtX;bn<{y|*_V7bUrc~hhgft*Y9vryzSY}M06iG7y={dwn-rQt#5xb>+`RC^f6v^z4(Q|d8B-!MDTk(XP{Q8r-@ZB!XmXA&5bSa9P_XS zTCEm>AV9CzqqMXX0MOIZgGeL-kH>?Fi3wI$un4HD--X4uEk+`dKs=E^A`wR-kx-fp zO5tksDt`IIQ;5Z45Cj2ErxSX;UeVb|B!b%7T6jDjXfztMI$CGF)V0_(RPU_$!r;hu zn9lZ|rQW`C)aUP`!JwZmydNaNB2aqrl2)swmX;QZMx!*Bbai!+R;y+0iVQ_`zOR=C zgM;K7?4#bkbL8zkOJ~GxdiQVd(CO||bmE=kWH1;A09mb81)hvE^BFSsTgU&bNJWOC ztT-;GleTW!d{a21qod^O>my%ZAB~QV=7j@*cmPnPZLnIUf?B22T%*y5Kp=qT=4NQM z+BwaG)oMjJ9A;B#Bs79{#}S1s=b1+$c_V(GAE8hPf*_!N_wIR3kkx91AP5)f1LhU0p{MZ^CXrv4!x zo%i*U_q?RV@4WXHG89YN8xDu_#t(4No=U&Jo}T#mV+4R& zT3YDP!9xUqj=uF)UN~}pe0_Zq-ks~{XWMO5zpIW`EYs79WqNWsojGx`Xt1Qkj%OUq z-gb3$&8xN9M61=p>-Dm>jzf;LFP+w4F6~qEJVKX3FqurVY@E$zV_I&r*%W1Zy&fi$ zNwKnrLK03{Ss5PLxDjJxV>r{@jTOuE`0wO3Y}U!qMyXh{a+E1ug;r z%7vfc5AII1wI9abrbYmOyR$1Njx4Ng@pzP#D|w7a2#pJ(xpq`?(9P7 z(xtp`WNCd?Qn=s$@fCLONB7?k0Eoq6`1s0|oH&eNS)06GFC(YAx|&rIMG+Q@1!l7u zX0sV~yFF)FM@NUkUdmeRJ?qWTUJe{TP4H(Sciwdu+S(6ebaWK;yXsK#z1#8j(W5AP za099~Z(%lcF41T-aJgK#O|t|qzx;C6I-h)UeNGH%qrq|DISvB@1Com+2#gp}6k#@- z6^%qugeZ!ruC9i~VwqKT;lc%Ub#*Z;x7&?@fdOd;m?l;tmt%fqw#7`=T&vYOt2|qq znfGF`7|wKeqpkfgte0#kdvF5)px@_1zt4xl!a{J1)N|r2Qmav4SBKjcFJ|}peLj|7 zreBt`KN%V&|pt!ggq9`H~i6}ZI575lK?1PG;2!p|(*jdfQ`Nd<8qjleYth#+Asy1)I zhnFL$sH{X=`(adV+m;v3*w`3anwqh7(`K~p+mF_L`_a_U007v%XHU-lCm%bWIiI-6)J@3jZHeAiPP48 z7`7cdaOL0s!au`dxSUSxZE8eCWhLwf_M>FY>UnW&J9fafV}~@*ot^0F?8Nm?u46;l zL)cQaHD`YmCgSsyb?eu`P;7w5^H-xjdsS!VZ-~n8|ENOLdaWM?V#dG2)HJFr9tW0|%YqQ(!#>B(~ zg25n`FJBJ3-OkG7ZE|K==5(HpkFp;{CmLHCq0wmIcDrG*SXi6PC|e{FfyH7$M@I)V z8Vz<<@0|5AdwyG=6=&D(I=ueo8#jfsdd+H7R92#*vJ!^k;=FKJu*W|x zk_klrGl7HlgUpvS8jUa-jnHbf5Jiy<`g}o}Yq4u+JLq6Rn$Hu51$+93`cY6&0DF@i zo?{+pwOT}@QH5vVa=BPA$7C|0xw)AQfXn4#bu-HVVEOXph(sc|?}zu{h_fBnr=}2} zL9iS*P9;<$H0nVR0kLsr+|JUhsq9(&;-H5o|Zng_MaPR;g z-0%RV;!~K4$B~G~5l_q@I7^9PX4ba;*Y)WDdvcoO zj3Xnq$kMHKWW*MC0MyXjK>pzY3SJD*qd$FA5m5^S0t2x}BJ@2C6#Q+Tk{q)lBUdp@e%wwXN`OJIs z;mp@QAFOP37K$-TgJr3Cx*Ap6s@PGF=0 zojBKXZow~eGp1oalQ0+lLI*8hj5!IG<=)bJv7u}O?pS>XzM;{iKb@L3Fhqo_u^5I1 zhj9Aj=>-$}S!wXi+Ti)tginp&ujD2+8btKKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000OpNkl7&-75?@|Mjb@#`ji%I0Sf4W%*C`F z`)E;h0;F|pEn(P~G&OZ95TPKMHfmZ(rfAElOW37}!btwjoD8M~LXnT?(rH6{UJ3Z{~aF<+C6eXpN<7bR^xijK?>Ww@V>z2-1`NZx z`L)Thi8U=U4Z|+(d&5hzX_}N+H_=ZL$vglrxf~DPbG6Fd`Fki9izt`N*xcCk01XBP zapJ@YjC^|pXU@I?!{orSx-}sN3kHlmm#*bw5^E*EUPDZGa+en?kUx}BtyVqHBasNi zb0Ur&Ke8(__6wf@K>qOH_uzS+lFIYERX83cWdXTsIjpX(_5>IV1~Ku|2@DUPgl-rx z3>~^|7ej}x8&t#nG`Ura|M`!9;a1@mYSkJ5AQp=u8jS(~R8@tdC;)(PB#iOoIKKAv z=XONEe&U}WyzP*LFl@UhOR@`8_;##Ycd>yP1}~ci2iKjGbG1T*x1;BD2mAE z^9Y4PoM=yW{0M53-Jja3OyqX)0Mp3C$kjZ4ak_!Nd zL<04Coi4FjwTA1t8y;KE(ujm<7W#1Sz9TFEuufRUaVRMZ9&(GtV%xImCW0WKSS(VKPB#p->31Sgb7)@Do4$Z-s_@OF#Ht z4Ymh=cm5uY7E-Ac)xv&65Cl5otE;QHd*>eAuvjE_HW7~ay0$%Z7LRvl$>NTNgFAOfk#Ro;aa^|$H zy|!sEnK{}nL_NQL2Q>SP^%1TdZ) z?|JZ@@LSDJzxdQdI3GM17{unrCRSEfXoE~9LtlRA&>_!@ojO%j+v*%~um%HzAjGvD z27xoD_OG^&dp7Va3b$_J7jNev%Q9qHMl>2lG#Z5<2v8J-DnmcXnEl45e*590hd6NH z0J4{|kmqCwf`GNPwVuK>S(Z^K6lhy_9RLgs4MEd1oOv@ZHnj z!B%4nTa5EEo)u!mkQMeOw_+>LPjP zy?1u41%!~U_wHx?;%|rB?>m@I+p5$XNxb^KSLrE)QY_)l{GG1H_GiVjh{cBKS=;>l z9n55BcJCy*Xwq&p*H2^puDf{;({0~+^w<$hWiH_x-we7=Bi!jmc;Z&)Kc1|9@(F%< zJ&%Rb!rpk{E(6_5g58t(xe)Bg$>EbYedaWdy>JX)4FtS7TsyS-bYlaLmLB2$-TQk+ z?B}h)`(cB7BKWEFFAO2%8HQp0{gjG**kBOC{C5DX=$G>`m+LbC0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}000Q~Nkl0x(=yA<`H9zo;y7lu1KkAHW+`R1R0{t-h6aWM?@6`shN z3n7GI01yDUaq~J@mIceQ;5ZH}%YkEAu$*~iSuhL>mSMm!48Sm!77!2+oj@l#blpgr zrWsdVgQn@wb&b~PM5pZuA=b;#{No@8_a6cPFaU@JF2`|3V!2YDg=rjJgHnE-PRF^hwHZ!8V@V;R|O)=}>9cpx2+ zuyx0lRe`Zy`WXP^lUx4)&+`;ip689k@fcP{(08s6Q&UsRQs{QO(f+%3w6yGks%g+P z6{>0`O@*pzl;M?_T+ZSL|M?OZ;}g{rD3swz~q2vt>`Cc^?)H*L8M=&uW3BXlB+LZJXjk`Rl< z(9qD}_=tQykG8fp$g&KV%Z1*)-erTZ-ufxPxBhhtH5RZnJZktF2e^VDARG=O6beBQ zgas8Q5(%`mwNap(JWY6i;BWX|Z7o!_h+?rwnOqU%GJD+lW)~*169@zX7#tidO*_-H z*qNS4BoGV+(d22unR7kM0-%!q$;nAfO->rKvA!Pl_4O;(e{laHumHfBHkju)@SKym zq9`JrP9qYDEDA0F1Ofr%aydH1CbAPa-*>@b%USA?Fr{Sv*#W#amc~SO0+J-5{nV)? zKPC_eK$0X(WG8TMEWIq7Tdx1_moLNn{0lgG_y~?3J_7IaFW}RgH&>+J5*7eh%Pr$L z3@alJaFfa8ylJzT2!eoQGD$&}hhz*7kAUO&${@3r+Xn~8^2f$I#9}dcnw!i0%ZdwP zEEaS0T};aLkKVqG?yd;xpLrHuuMY=WTLA#S{?%*vQ-6Qe`W*lp3^rKYcdm~DH8?o9 zBx@G~+3MT(hd$GnHo;{~pPDs23vuBP{P=5Eu2XLz91c?!u0#Yu zpd&stHHB+euhR{S0rJ8o!jekQPb3l*^NaOaNbGHU-!+K!*AG9SWj}uDB>+I7P{5ZD z9#pNL0&KAOFfRLXF%B#8o}C<=T&pQDqaC{Ppy zp->2Zzkgoc`1m+ol_g0+B9TBUl`?jKHei7gxFxT=q$`ujR9ws~<^}?RdG(e0EF|`} zH9U{@lP9sUww9KS-o8!q&ow+(wSF6ejSsbUXqz{0rVZNK+Nk}><#KeOgbPr26#DQwYBEB#s4%bosxJ6tXo z5{U%-em~V^_k;8KJp6t?`uqFga=CCKbYj^bUrGP=9ouoBwG{_iTj6PLUX^~zVC#kJ zTy>Z&%wl|eoHmF=BJ|;#Hf?eMXVqmgnR#`VSi0(5bs)sH9R`6lrsmzemwU?f6yg{A z@y^?QkYyRNEJGAUh@uEV5TGauCBsUBG3%|LuG^z`N3mhU21L7}kcVUlf`IAiX@_SJ zkH=|@!Rz%R5{Xdu#^Z6?)?Nnyjg5`S=ks{+M=#<+>^vUL&7oMFLs2cFSX7}|aS2_6 zuIV%gU%pfOHij!{u;=!jf1{>m13nx1458nI=(aE%4zKE^tpEuCoPGN&e!6Ej=8AKe zD;A*^izupP09Oe3eA@%=EC70>N6hVZllY(GBy&Ga?qtTudw+Rv)hr-{ zESk5Mtyce1&s;TwEeXF7!qHzGrKb=|au`>yTwV0oexI}tUT+IMYrAsgD$YjFu6~iI zz^=7oZuv7Ro%gMV#mr*+)~(yNpfl2i`X9J$rxEsWBOHFK^^Yf0laqM&d<-MQBWtq? z+dy1v)3DI97JKHJ0c^>xmR;DhcMrC0--hqIT+SG-=~{hNDB$j$ySQ=f#+m{9O)+>W x8^7)VKarISLkQW(FwB3SK(P)R3__Uy4FK>(yR3Yb!O;K!002ovPDHLkV1lxPh(-Va literal 0 HcmV?d00001 diff --git a/resources/style.qss b/resources/style.qss index d80964a1..bdb0966a 100644 --- a/resources/style.qss +++ b/resources/style.qss @@ -13,6 +13,13 @@ QWidget#UBTBMediaContainer border: 2px solid #999999; } +QFrame#UBTBSeparator +{ + background: #DDDDDD; + border-radius: 2px; + border: 1px solid #DDDDDD; +} + QWidget#UBMediaVideoContainer { background: #000000; @@ -27,11 +34,17 @@ QWidget#UBTeacherBarPreviewWidget border: 2px solid #999999; } +QLabel#UBTBPreviewSessionTitle +{ + font-size: 12px; +} + QLabel#UBTeacherBarPreviewTitle { color: #555555; - font-size : 18px; + font-size : 20px; font-weight:bold; + padding-left:5px; } QLabel#UBMediaPlayerButton @@ -44,7 +57,7 @@ QLabel#UBTeacherBarPreviewSubtitle color: #555555; font-size : 15px; font-weight:bold; - padding-top: 10px; + padding-left:5px; } QWidget#UBLibWebView @@ -61,7 +74,8 @@ QWidget#UBActionPreviewOwner font-weight: bold; } -QWidget#UBTeacherBarPreviewComments +QWidget#UBTeacherBarPreviewComments, +QWidget#UBTeacherBarTargetBox { border-radius: 10px; border: white 2px solid; diff --git a/src/customWidgets/UBWidgetList.cpp b/src/customWidgets/UBWidgetList.cpp index 0ba01bb0..6481acb4 100644 --- a/src/customWidgets/UBWidgetList.cpp +++ b/src/customWidgets/UBWidgetList.cpp @@ -57,7 +57,7 @@ void UBWidgetList::addWidget(QWidget *widget) void UBWidgetList::removeWidget(QWidget *widget) { - if(NULL != mpLayout){ + if(NULL != mpLayout && NULL != widget){ mpLayout->removeWidget(widget); mWidgetInfo.remove(widget); widget->setVisible(false); diff --git a/src/gui/UBTeacherBarPreviewWidget.cpp b/src/gui/UBTeacherBarPreviewWidget.cpp index 2181a549..7d2ad585 100644 --- a/src/gui/UBTeacherBarPreviewWidget.cpp +++ b/src/gui/UBTeacherBarPreviewWidget.cpp @@ -1,5 +1,6 @@ #include "core/UBApplication.h" #include "customWidgets/UBGlobals.h" +#include "board/UBBoardController.h" #include "frameworks/UBFileSystemUtils.h" #include "UBTeacherBarPreviewWidget.h" @@ -84,9 +85,10 @@ UBActionPreview::UBActionPreview(QWidget *parent, const char *name):QWidget(pare mOwnerLayout.addWidget(mpOwner, 0); mOwnerLayout.addStretch(1); mLayout.addLayout(&mOwnerLayout); - mpContent = new QLabel(this); + mpContent = new QTextEdit(this); + mpContent->setReadOnly(true); mpContent->setObjectName("UBActionPreviewContent"); - mpContent->setWordWrap(true); + //mpContent->setWordWrap(true); mLayout.addWidget(mpContent); setContentsMargins(-9, -9, -9, -9); } @@ -103,10 +105,10 @@ UBActionPreview::~UBActionPreview() } } -void UBActionPreview::setOwner(const QString &owner) +void UBActionPreview::setOwner(int owner) { if(NULL != mpOwner && NULL != mpContent){ - switch(owner.toInt()){ + switch(owner){ case eActionOwner_Teacher: mpOwner->setText(tr("Teacher")); mpContent->setStyleSheet("background:lightblue; border:lightblue;"); @@ -124,6 +126,7 @@ void UBActionPreview::setContent(const QString &content) { if(NULL != mpContent){ mpContent->setText(content); + setMinimumHeight(mpOwner->height() + mpContent->height()); } } @@ -136,19 +139,30 @@ UBTBPreviewContainer::UBTBPreviewContainer(QWidget *parent, const char *name):UB UBTBPreviewContainer::~UBTBPreviewContainer() { +} +// ------------------------------------------------------------------------------------ +UBTBPreviewSeparator::UBTBPreviewSeparator(QWidget *parent, const char *name):QFrame(parent) +{ + setObjectName("UBTBSeparator"); + setMinimumHeight(5); + setMaximumHeight(5); +} + +UBTBPreviewSeparator::~UBTBPreviewSeparator() +{ + } // ------------------------------------------------------------------------------------ UBTeacherBarPreviewWidget::UBTeacherBarPreviewWidget(UBTeacherBarDataMgr* pDataMgr, QWidget *parent, const char *name):QWidget(parent) , mpEditButton(NULL) + , mpSessionTitle(NULL) , mpTitle(NULL) - , mpDuration(NULL) - , mpActionsLabel(NULL) - , mpMediaLabel(NULL) - , mpCommentsLabel(NULL) - , mpComments(NULL) - , mpLinksLabel(NULL) + , mpTitleLabel(NULL) + , mpPageNbrLabel(NULL) , mpContentContainer(NULL) + , mpScheduleLabel(NULL) + , mpLicenseLabel(NULL) { setObjectName(name); mpDataMgr = pDataMgr; @@ -158,23 +172,45 @@ UBTeacherBarPreviewWidget::UBTeacherBarPreviewWidget(UBTeacherBarDataMgr* pDataM setStyleSheet(UBApplication::globalStyleSheet()); // Build the Preview widget - // Title + duration - mpTitle = new QLabel(this); + // Session Title + mTitleContainer.setLayout(&mTitleLayout); + mpSessionTitle = new QLabel(this); + mpSessionTitle->setText(tr("Session: ")); + mpSessionTitle->setWordWrap(true); + mpSessionTitle->setAlignment(Qt::AlignRight); + mpSessionTitle->setObjectName("UBTBPreviewSessionTitle"); + mLayout.addWidget(mpSessionTitle); + + // Title + mTitleContainer.setLayout(&mTitleLayout); + mTitleLayout.setContentsMargins(0, 0, 0, 0); + mpTitleLabel = new QLabel(&mTitleContainer); + mpTitleLabel->setText(tr("Activity")); + mpTitleLabel->setObjectName("UBTeacherBarPreviewSubtitle"); + mTitleLayout.addWidget(mpTitleLabel, 0); + mpTitle = new QLabel(&mTitleContainer); mpTitle->setObjectName("UBTeacherBarPreviewTitle"); mpTitle->setWordWrap(true); - mpTitle->setAlignment(Qt::AlignCenter); - mpDuration = new QLabel(this); - mTitleDurationLayout.addWidget(mpTitle, 0); - mTitleDurationLayout.addWidget(mpDuration, 1); - mLayout.addLayout(&mTitleDurationLayout, 0); - + mpTitle->setAlignment(Qt::AlignLeft); + mTitleLayout.addWidget(mpTitle, 1); + mpPageNbrLabel = new QLabel(tr("Page n° "), &mTitleContainer); + mpPageNbrLabel->setAlignment(Qt::AlignRight); + mpPageNbrLabel->setObjectName("UBTBPreviewSessionTitle"); + mTitleLayout.addWidget(mpPageNbrLabel); + mTitleLayout.addWidget(&mTitleSeparator); + mLayout.addWidget(&mTitleContainer); + + // Content mpContentContainer = new UBTBPreviewContainer(this); mLayout.addWidget(mpContentContainer, 1); - //mLayout.addWidget(&mMediaViewer, 1); - // The next line is disgusting. This is a quickfix that must be reworked later - mMediaViewer.setContentsMargins(-9, -9, -9, -9); - hideElements(); + // License + mLayout.addWidget(&mLicenseSeparator); + mpLicenseLabel = new QLabel(tr("License"), this); + mpLicenseLabel->setObjectName("UBTeacherBarPreviewSubtitle"); + mLayout.addWidget(mpLicenseLabel); + // TODO : Add the license field here + // Edit button mpEditButton = new QPushButton(tr("Edit infos"), this); @@ -186,128 +222,121 @@ UBTeacherBarPreviewWidget::UBTeacherBarPreviewWidget(UBTeacherBarDataMgr* pDataM connect(mpEditButton, SIGNAL(clicked()), this, SLOT(onEdit())); + connect(UBApplication::boardController, SIGNAL(activeSceneChanged()), this, SLOT(onActiveSceneChanged())); } UBTeacherBarPreviewWidget::~UBTeacherBarPreviewWidget() { - DELETEPTR(mpLinksLabel); - DELETEPTR(mpComments); - DELETEPTR(mpTitle); - DELETEPTR(mpDuration); - DELETEPTR(mpActionsLabel); - DELETEPTR(mpMediaLabel); - DELETEPTR(mpCommentsLabel); - DELETEPTR(mpContentContainer); DELETEPTR(mpEditButton); + DELETEPTR(mpLicenseLabel); + DELETEPTR(mpScheduleLabel); + DELETEPTR(mpPageNbrLabel); + DELETEPTR(mpTitle); + DELETEPTR(mpTitleLabel); + DELETEPTR(mpSessionTitle); } -void UBTeacherBarPreviewWidget::onEdit() +void UBTeacherBarPreviewWidget::onActiveSceneChanged() { - emit showEditMode(); + mpPageNbrLabel->setText(tr("Page n° %0").arg(UBApplication::boardController->activeSceneIndex())); } -void UBTeacherBarPreviewWidget::setTitle(const QString &title) +void UBTeacherBarPreviewWidget::onEdit() { - if(NULL != mpTitle){ - mpTitle->setText(title); - } + emit showEditMode(); } -void UBTeacherBarPreviewWidget::setComments(const QString &comments) +void UBTeacherBarPreviewWidget::updateFields() { - if("" != comments){ - mWidgets.clear(); - mpComments->setText(comments); - mpComments->setVisible(true); - mpCommentsLabel->setVisible(true); - mWidgets << mpCommentsLabel; - mMediaViewer.loadWidgets(mWidgets, false); - mWidgets.clear(); - mWidgets << mpComments; - mMediaViewer.loadWidgets(mWidgets, true); + // First, remove the previous elements + if(!mStoredWidgets.empty()){ + foreach(QWidget* pW, mStoredWidgets){ + mpContentContainer->removeWidget(pW); + if( pW->objectName() == "UBActionPreview" || + pW->objectName() == "UBLinkPreview" || + pW->objectName() == "UBCommentsPreview"){ + // Here we delete all preview widget excepting the media because they are handled by the data manager + delete pW; + pW = NULL; + } + } + mStoredWidgets.clear(); } -} -void UBTeacherBarPreviewWidget::clean() -{ - mMediaViewer.cleanMedia(); + // Session Title + mpSessionTitle->setText(mpDataMgr->sessionTitle()); - foreach(QWidget* eachWidget, mStoredWidgets){ - delete eachWidget; - eachWidget = NULL; + // Page Title + if("" != mpDataMgr->pageTitle()){ + mpTitle->setText(mpDataMgr->pageTitle()); + mpPageNbrLabel->setText(tr("Page n° %0").arg(UBApplication::boardController->activeSceneIndex())); + mTitleContainer.setVisible(true); + }else{ + mTitleContainer.setVisible(false); } - mStoredWidgets.clear(); - hideElements(); + // Actions + generateActions(); + + // Media + generateMedias(); + + // Links + generateLinks(); + + // Comments + generateComments(); + } -void UBTeacherBarPreviewWidget::hideElements() +void UBTeacherBarPreviewWidget::clearFields() { - mpActionsLabel = new QLabel(tr("Actions"), this); - mpActionsLabel->setObjectName("UBTeacherBarPreviewSubtitle"); - mpMediaLabel = new QLabel(tr("Medias"), this); - mpMediaLabel->setObjectName("UBTeacherBarPreviewSubtitle"); - mpCommentsLabel = new QLabel(tr("Comments"), this); - mpCommentsLabel->setObjectName("UBTeacherBarPreviewSubtitle"); - mpComments = new QLabel(this); - mpComments->setWordWrap(true); - mpComments->setObjectName("UBTeacherBarPreviewComments"); - mpLinksLabel = new QLabel(tr("Links"), this); - mpLinksLabel->setObjectName("UBTeacherBarPreviewSubtitle"); - - mpActionsLabel->setVisible(false); - mpMediaLabel->setVisible(false); - mpCommentsLabel->setVisible(false); - mpComments->setVisible(false); - mpLinksLabel->setVisible(false); + } -void UBTeacherBarPreviewWidget::setActions(QStringList actions) +void UBTeacherBarPreviewWidget::generateActions() { - if(!actions.empty()){ - mWidgets.clear(); - mpActionsLabel->setVisible(true); - mWidgets << mpActionsLabel; - mediaViewer()->loadWidgets(mWidgets,false); - mWidgets.clear(); - foreach(QString action, actions){ - QStringList desc = action.split(';'); - if(2 <= desc.size()){ - QString owner = desc.at(0); - QString act = desc.at(1); - mpTmpAction = new UBActionPreview(this); - mpTmpAction->setOwner(owner); - mpTmpAction->setContent(act); - mWidgets << mpTmpAction; - } + if(!mpDataMgr->actions()->empty()){ + foreach(sAction act, *mpDataMgr->actions()){ + mpTmpAction = new UBActionPreview(this); + mpTmpAction->setOwner(act.type); + mpTmpAction->setContent(act.content); + mpContentContainer->addWidget(mpTmpAction); + mStoredWidgets << mpTmpAction; } - mMediaViewer.loadWidgets(mWidgets, true); } } -void UBTeacherBarPreviewWidget::setLinks(QStringList links) +void UBTeacherBarPreviewWidget::generateMedias() { - if(!links.empty()){ - mWidgets.clear(); - mpLinksLabel->setVisible(true); - mWidgets << mpLinksLabel; - mMediaViewer.loadWidgets(mWidgets, false); - mWidgets.clear(); - foreach(QString link, links){ - mpTmpLink = new QLabel(link, this); - mpTmpLink->setOpenExternalLinks(true); - mWidgets << mpTmpLink; + foreach(QWidget* pMedia, *mpDataMgr->medias()){ + if(NULL != pMedia){ + mpContentContainer->addWidget(pMedia); + mStoredWidgets << pMedia; } - mMediaViewer.loadWidgets(mWidgets, true); } } -void UBTeacherBarPreviewWidget::updateFields() +void UBTeacherBarPreviewWidget::generateLinks() { - + if(!mpDataMgr->urls()->empty()){ + foreach(sLink link, *mpDataMgr->urls()){ + mpTmpLink = new QLabel(QString("%1").arg(link.link).arg(link.title), this); + mpTmpLink->setObjectName("UBLinkPreview"); + mpContentContainer->addWidget(mpTmpLink); + mStoredWidgets << mpTmpLink; + } + } } -void UBTeacherBarPreviewWidget::clearFields() +void UBTeacherBarPreviewWidget::generateComments() { - + if("" != mpDataMgr->comments()){ + mpTmpComment = new QTextEdit(this); + mpTmpComment->setObjectName("UBCommentPreview"); + mpTmpComment->setPlainText(mpDataMgr->comments()); + mpTmpComment->setReadOnly(true); + mpContentContainer->addWidget(mpTmpComment); + mStoredWidgets << mpTmpComment; + } } diff --git a/src/gui/UBTeacherBarPreviewWidget.h b/src/gui/UBTeacherBarPreviewWidget.h index a7ff6e9b..882bfc01 100644 --- a/src/gui/UBTeacherBarPreviewWidget.h +++ b/src/gui/UBTeacherBarPreviewWidget.h @@ -4,6 +4,7 @@ #include #include #include +#include #include "core/UBPersistenceManager.h" #include "customWidgets/UBWidgetList.h" @@ -30,12 +31,12 @@ class UBActionPreview : public QWidget public: UBActionPreview(QWidget* parent=0, const char* name="UBActionPreview"); ~UBActionPreview(); - void setOwner(const QString& owner); + void setOwner(int owner); void setContent(const QString& content); private: QLabel* mpOwner; - QLabel* mpContent; + QTextEdit* mpContent; QVBoxLayout mLayout; QHBoxLayout mOwnerLayout; @@ -48,19 +49,19 @@ public: ~UBTBPreviewContainer(); }; +class UBTBPreviewSeparator : public QFrame +{ +public: + UBTBPreviewSeparator(QWidget* parent=0, const char* name="UBTBPreviewSeparator"); + ~UBTBPreviewSeparator(); +}; + class UBTeacherBarPreviewWidget : public QWidget { Q_OBJECT public: UBTeacherBarPreviewWidget(UBTeacherBarDataMgr* pDataMgr, QWidget* parent=0, const char* name="UBTeacherBarPreviewWidget"); ~UBTeacherBarPreviewWidget(); - UBTeacherBarPreviewMedia* mediaViewer() {return &mMediaViewer;} - void setTitle(const QString& title); - void setComments(const QString& comments); - void setActions(QStringList actions); - void setLinks(QStringList links); - void clean(); - QLabel* mediaLabel() { return mpMediaLabel;} void updateFields(); void clearFields(); @@ -69,29 +70,47 @@ signals: private slots: void onEdit(); + void onActiveSceneChanged(); private: - void hideElements(); + void generateActions(); + void generateMedias(); + void generateLinks(); + void generateComments(); QVBoxLayout mLayout; QHBoxLayout mEditLayout; - QHBoxLayout mTitleDurationLayout; - UBTeacherBarPreviewMedia mMediaViewer; - QList mWidgets; - QList mStoredWidgets; - QPushButton* mpEditButton; + + // Titles + QVBoxLayout mTitleLayout; + UBTBPreviewSeparator mTitleSeparator; + QWidget mTitleContainer; + QLabel* mpSessionTitle; QLabel* mpTitle; - QLabel* mpDuration; - QLabel* mpActionsLabel; - QLabel* mpMediaLabel; - QLabel* mpCommentsLabel; - QLabel* mpComments; - QLabel* mpLinksLabel; - QLabel* mpTmpLink; - UBActionPreview* mpTmpAction; + QLabel* mpTitleLabel; + QLabel* mpPageNbrLabel; UBTBPreviewContainer* mpContentContainer; + + // Schedule + QLabel* mpScheduleLabel; + + // License + UBTBPreviewSeparator mLicenseSeparator; + QLabel* mpLicenseLabel; + + /** Pointer to the datas */ UBTeacherBarDataMgr* mpDataMgr; + /** The list of stored widgets */ + QList mStoredWidgets; + /** A temporary action widget */ + UBActionPreview* mpTmpAction; + /** A temporary media widget */ + UBTeacherBarPreviewMedia* mpTmpMedia; + /** A temporary link */ + QLabel* mpTmpLink; + /** A temporary comments field */ + QTextEdit* mpTmpComment; }; #endif // UBTEACHERBARPREVIEWWIDGET_H diff --git a/src/gui/UBTeacherBarWidget.cpp b/src/gui/UBTeacherBarWidget.cpp index 7d8ab771..322b3f91 100644 --- a/src/gui/UBTeacherBarWidget.cpp +++ b/src/gui/UBTeacherBarWidget.cpp @@ -39,13 +39,13 @@ UBTeacherBarWidget::UBTeacherBarWidget(QWidget *parent, const char *name):UBDock // Create the GUI setLayout(&mLayout); - mpPageEditWidget = new UBTBPageEditWidget(&mData, this); - mpPreview = new UBTeacherBarPreviewWidget(&mData, this); - mpDocPreviewWidget = new UBTBDocumentPreviewWidget(&mData, this); - mpDocEditWidget = new UBTBDocumentEditWidget(&mData, this); - mpStackWidget = new QStackedWidget(this); mLayout.addWidget(mpStackWidget); + mpPageEditWidget = new UBTBPageEditWidget(&mData, mpStackWidget); + mpPreview = new UBTeacherBarPreviewWidget(&mData, mpStackWidget); + mpDocPreviewWidget = new UBTBDocumentPreviewWidget(&mData, mpStackWidget); + mpDocEditWidget = new UBTBDocumentEditWidget(&mData, mpStackWidget); + mpStackWidget->addWidget(mpPageEditWidget); mpStackWidget->addWidget(mpPreview); mpStackWidget->addWidget(mpDocPreviewWidget); @@ -120,7 +120,7 @@ void UBTeacherBarWidget::loadContent(bool docChanged) // Update the fields mpPageEditWidget->updateFields(); - mpPreview->updateFields(); + //mpPreview->updateFields(); if(docChanged){ mpDocEditWidget->updateFields(); mpDocPreviewWidget->updateFields(); @@ -155,15 +155,19 @@ void UBTeacherBarWidget::onTBStateChanged(eTeacherBarState state) { switch(state){ case eTeacherBarState_DocumentEdit: + //mpDocEditWidget->updateFields(); mpStackWidget->setCurrentWidget(mpDocEditWidget); break; case eTeacherBarState_DocumentPreview: + //mpDocPreviewWidget->updateFields(); mpStackWidget->setCurrentWidget(mpDocPreviewWidget); break; case eTeacherBarState_PageEdit: + mpPageEditWidget->updateFields(); mpStackWidget->setCurrentWidget(mpPageEditWidget); break; case eTeacherBarState_PagePreview: + mpPreview->updateFields(); mpStackWidget->setCurrentWidget(mpPreview); break; }