From c08cc778fd05000cf6a63161e4fecc27f4b24536 Mon Sep 17 00:00:00 2001 From: Tobias Doerffel Date: Sat, 12 Jul 2008 12:47:34 +0000 Subject: [PATCH] unified track-view appearence and behaviour git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1303 0778d3d1-df1d-0410-868b-ea421aaaa00d --- data/themes/default/add_automation.png | Bin 845 -> 1064 bytes data/themes/default/add_sample_track.png | Bin 1274 -> 1711 bytes data/themes/default/arp_down_off.png | Bin 310 -> 0 bytes data/themes/default/arp_down_on.png | Bin 604 -> 0 bytes data/themes/default/arp_random_off.png | Bin 492 -> 0 bytes data/themes/default/arp_random_on.png | Bin 717 -> 0 bytes data/themes/default/arp_up_and_down_off.png | Bin 306 -> 0 bytes data/themes/default/arp_up_and_down_on.png | Bin 569 -> 0 bytes data/themes/default/arp_up_off.png | Bin 306 -> 0 bytes data/themes/default/arp_up_on.png | Bin 581 -> 0 bytes data/themes/default/automation.png | Bin 232 -> 465 bytes data/themes/default/automation_track.png | Bin 0 -> 752 bytes data/themes/default/colorize.png | Bin 1557 -> 1445 bytes data/themes/default/instrument_track.png | Bin 0 -> 1013 bytes data/themes/default/sample_track.png | Bin 1485 -> 2494 bytes data/themes/default/style.css | 9 +- data/themes/default/surround_area.png | Bin 3075 -> 0 bytes include/automation_track.h | 10 - include/bb_track.h | 9 +- include/effect_rack_view.h | 2 +- include/instrument_track.h | 58 ++---- include/name_label.h | 25 ++- include/sample_track.h | 13 +- include/track.h | 3 + src/core/track.cpp | 12 +- src/gui/widgets/group_box.cpp | 1 + src/gui/widgets/name_label.cpp | 92 ++++---- src/tracks/automation_track.cpp | 12 +- src/tracks/bb_track.cpp | 25 +-- src/tracks/instrument_track.cpp | 219 +++++++------------- src/tracks/sample_track.cpp | 52 ++++- 31 files changed, 242 insertions(+), 300 deletions(-) delete mode 100644 data/themes/default/arp_down_off.png delete mode 100644 data/themes/default/arp_down_on.png delete mode 100644 data/themes/default/arp_random_off.png delete mode 100644 data/themes/default/arp_random_on.png delete mode 100644 data/themes/default/arp_up_and_down_off.png delete mode 100644 data/themes/default/arp_up_and_down_on.png delete mode 100644 data/themes/default/arp_up_off.png delete mode 100644 data/themes/default/arp_up_on.png create mode 100644 data/themes/default/automation_track.png create mode 100644 data/themes/default/instrument_track.png delete mode 100644 data/themes/default/surround_area.png diff --git a/data/themes/default/add_automation.png b/data/themes/default/add_automation.png index 640705753c5b21eb3ee7521fc4d9ba2956b3848e..2d0c7ba4d39ae189e0ac8638adb3ebf2bdee2e68 100644 GIT binary patch delta 996 zcmVU1(cn z7{`Baa+0&8U9y?QA;>zcvncpMizsC%wN@D7Y6UNb7KVd)p%Y==^ujx#SA*ib*^nx& z*T$*4kka`%5G7qVkh-qfY8`G#+9u7%NzO;k>&3~(Nt<*P|8RKE`@YZlKhN`jp7(#e z0vA$W!u_u`&oBSZwm7gKR+2C>?#yFj&NwpeybJf@c4$XX8{0v|Ct64F`~dv;{k;j= z1yK9GDT7zvMgn|w&RO41f}x`@^YsogsBIoS;gHv;ODV)o2-*eEW1CYokm|2-&c4=1HnmxJN&xxQHzKbD5d;))Zo~f(T z5?Td@7vQQIOHX4E4Y`4geU#sCxSYSH8- z{pU59D#F1-UHDYUR+b3?*?fPxZj&wC#23kvuYg~Lt_QoAT3lu-La#D14%xw~+?$Im z;j>jB48e{7>(*Z=9!bCpnzr7Mu=qC>S)^z~wj${02*4h|;G`0t0NdVFU{|mHWCFY4 z=AA{1Kkl+m@v_$^C?s__;@B)LtdPtk$(WK=v%>924uXKn3nDfK&mDhuwW)0G(EVw! zBA{Fc^R#3qP|paA9w3RS0N9nS2dm!yKETU=g8)2$S`9WCb2wX+fM*T3)d_wL_NF1? zgMEI`Q}F8tPAL6n1ZoskO;|G_6NPdB$g`xxCqPIBQySRjx^Yk(2Hvbp!45Pu| SK%ja60000Fx<2N delta 775 zcmV+i1Ni)?2+anNHwgd$0002_L%V;GKp%ew91tBGP<^^a0008bNkl-2nYpNZ4Y1^pBAI;?{dR@UV?djBZ%AeY$oh47TlR zw4IU5RmKt~aw;JiSyp$)nh7;uIBRnKe^-K&u7vG+nKT%g;ma&=qVHAjJ@cA_I}bwf z_VVq%OLs5zUB318`!9c%PbLkA;{t!Q2}l|Y-lyCh`{>AN{kva~)@y!Us({^{JH7Mb z+XkK-aQ^%AhX?N^zB-@;g?0cVGhB-ULx+ZR#gW;pqB3{gss1xg^`CKf_PV*OqC1WZ z9U5{i4!n8K8*PPLu5uxx_o-f`h{bHmE-Wt3Y-$!)?kMeDww%!s(ff3-t2ck94*SGF zOTgF)c@J?{r}?xZEaWQ!17PCNCSEqb8YKB_^CUV5wxpzbDhx_)0 zMNgChD-WugCUEP=yB;h&uu#v<)-%8CT_Q&0cuT-k*fcWzDRc9K`9IZsbN1oyzN2#i z{pj#)%aDT-ivQvYEg)(mwtut3|YC%b* zCE$3Gn<;5bv7cQr`#VW)Z)x^CNB2SMYb+(CYpA2>a!bH)k+FbAorRPg89^QSmS!Pm zaf#_i%&(C)2nysSVy{D4^000SaNLh0L00Nl+00Nl-}`s!%)f; zN^9SxW#+!mIrlubKW0inz{H)bWbdr3^{uSeMr+Ln$rBSVb!x3aBOcZx=52b!L?ix} z&3}s=pPVXv!K)jJ=U4Ira9#q*;@0F`R6aJK5N0hq1$D`w{8vlRl7#}tu=i#7}_wpMCE8Q|BC z?={}R_%Kict^_OqRjap&qBIXssRfJUB)b}5wi*~&rhmz_E`OOdc+^GU={!ioEE?Cn zpeJeEAO6;|j6q-;APC}hwymC%Qd|a@0J2tZQ>_OV04poi;FAC|6`z@k&uqo-0P?bNrAbDX z>1%-r*=&V0n&I-#-#VdcjrJ9_dRxSCHfTtRK7>T+fe`7sU8Myyl_teScE5{D>e(EI){cY};^)1)H3$mRqJV zqLf5RarxGJv$30RD@=Fh99uX-?YZu*-(kw$_>h*nR(@ZI$L~CBmGgT(edfM$Ik?;u zLSRVoC25EqDhLw%AjWaji0hcRj){{qziQh?k7XJtLl%^s{c!)m)A#I)c6KyZoM+w8 zx_`0J{!s=y2LU+JJhJ@h6HhOH(%eE%edzw1+doICLXWA8ZZSIcn@fZcXY;Q4YTmW3 z$h#)4YvMX);^a(aSq7=$vpxP^d!}?Mcl*fg43~yT;)t*v0AM=~N?E*Cd!23n+D7Tj zrQDJ|K*=q9QD&J&N`W*)*)Rl#l9Yn!-b<~Une^FCJU88mnmqS z3t__?;Em}MoU5Lr8f#|alv4{D;D1772dh=ywGt`CUZo`MFgZ|fw66?I+4OkNi<|tlV_tP0NOQ*njuDBOBUB zmf@1^f(0flv>-eWd$wo*RzE1PdtfGp*%)Mb9%OP{6$^G8MJfd7E;)yHb>8|wm%ZfR z=lZ|Uzckm!Q$73nXJwki1!EWrF7!CyAGsKC_cG`hggAhP4@m&TfWfo!2OF=|T_wi{ z_}Sg-vTA(xCnw*U?SJ9iPJbq9zra{>3M6DPR9kSq31=Em(-#3%4W}A&x=IU@Ip-Ra zM-)Iu-Z}&zgb?NX$c16Zi>ICRE0_io(A%O z$qqfL_Y1A{yXtf4Ch<|-BmSK0rN65`M{#kUx);>;)xBDhFhCuQ2!HGpR61ABL_sJa zv4A4r@;74E>+7}u9)J*H5zyB$s@5|rUAx**nmt|fC}lN%$qn?emO6sge4a0SEge7+ zjm-`c?$Fn0AK*QJ3#pnnv*(*M10o>dAFM?1ZQ86OVy<5-j*;W97(Aj^>HY8Y^&hw{ W4r+q}Sd{<(002ovP6b4+LSTYG%Pp_~ delta 1235 zcmV;^1T6cn4f+X?H-7*C0002_L%V+f000SaNLh0L00!&;00!&<9(6c100007bV*G` z2iOK25G51WT^lR_00eqTL_t(Y$CZ{#Y!y`)$A9O{+&j!|FVNCb6HFf>+{6Woc40(g z#6k!Gjf*aHp^KUn7N8)kh_W=%NQ@wf=>me{!mX|hA|Yh~Xn#qK5L0O3-qHe{+jj1A z?qeRu#eLQm314zDbI$p`|NnfC`OXNS_xkl4$34##2!Rj+0r1~v^&M!;n?%zzH83#n zIgkKU-2~{jtmL@o`$$Gzu08-P4wzduc6F^YgmjFTvq!dUgR}LYNLU23z zcLlJvwu;_rB7Xs-s3_G=TLTqBAf!Y{$%ntZ$KA!d%ZaOdqH6m@0wEiq%|^{0l)Vz) z{PhKjV8vd|?#To~5Cj3KRBELcRj{ZLWh{A_pW;6(3z2QxD5aj_fe@t9X~KrV!?`)A z8i=M)z0&hCU%xuaw-euy^KvMqn4O))Fbr(l{(l0c6o2_#j#8@21D|qX@&cNs;kquRQi*Ifi&AP;0v(`KEFv|Hq-D|D+gq=c<}wY-FhU5rqureN z;{<1>&yXl5P)e~$+r*BU9q=|Wer93?f$#eWAxLL3L?V%8;I-ss%MSZ5?dSac^9*ho zWLNhtHh)Jq12CPP=Hkpn)zMx)EX3toY( z=UyZm&2wnr5V7@J@!T?{VgUfdG|}}ilc_tL9zTtfbglxsIf^3zOw&Xu#dBRL$pK;7W@Q>#akSV9pPZ?2!AsRw^;NOv_=euwhbZL#cL=|)sw7A z$=YZX(=-W%LiL0d1BWZKmpOO;96g(Q2pN#_<2ZhtRQ6sy&Z*ozoFGoxj}tba=lLEm z8Rjec_1Y=h+uO-xGIV!$lMgc7$oT{M)Z2Nb)Alm4)Si6W7j_5jhA+!q7La$9wKn>(H+XSAJd_0w1ot@ z`4a4@*iQX3!@NC@?J5>rpV>AZFEf$O8N-3n2 z_`Z*A+gO%`WmybohM9}Z5q6+02^&Jt5r&cl*N#>E-hNVGbi#rQi!RumP&9!oQ+ngF z67^hc+_;ght}cWS?48)l={;79M6G)zo@y1+$sT-ck;{3b-P~sC-&D``7m~+&2s%D3suF3Le;C zxeXnwTv>aRf_xDO0S0GzhnoV3jg5_c7APf}uf67bI2&a31M0wzxD)Rr4O$rtA9TNx zL{Ep31TPG%10r0-WjBL3qRO}C2~0l=4H?4ZW4;95CygLijWbn*R$v_pgR^*i#P&wB xdp5aAKOQ3#8Kg`P0Ab>+;deAf8Q^BK`oEj##LuBBMuz|Z002ovPDHLkV1gmiIgJ1S diff --git a/data/themes/default/arp_down_off.png b/data/themes/default/arp_down_off.png deleted file mode 100644 index 03dd75f01be8ceb1f6708ef6cf400155dd36cd1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 310 zcmV-60m=S}P)M%)$dbc;)u3rf zb06&}&wOmhQbuVFn6;!uoY+RnSWEgv${HU#XKSV~yr6&d1)TUH||907*qo IM6N<$f~fg@7XSbN diff --git a/data/themes/default/arp_down_on.png b/data/themes/default/arp_down_on.png deleted file mode 100644 index b0ce4a5cc110e4dfc2cf1c6e352e8bf76c056d95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 604 zcmXAlZAeoA6o%imP3Om`ZJFMMI9$`IYoI15VltU7mkyccLUd{N!4k)aVNgTF_G8Kh zVM?Lfe`Q&_zr9VzkyvaA4RfexDoD%$Utn&#~9vh9DgpJ z@8=7i3y8M_@tz<)5Q)=?NjH;3PEqnuvUp4^osp)!OOwBmXU}KnOyuNE=N0r96pj@t zyb8su{1SJGdQ`3UskM{Z>fvhLW1Vh7S3}m+j_B(i*6BTZgV$grjV996Lbg~YEv-|n zj(JBH*%c0lZL%{Bl%XkRt%h>+KMaa}Ocwj#5y>%AoBipFU}$G|kKzxFTw>0r_84bR zs+5NDCLiS}dP|jxs)U}#dKEL)%JyZg-krM6v^dRNyJKgwhzLsJ7Apl}%cnBgu&jJ@ zu&w6YTA(X=ua;Zxf8E{OcERMn=1Q6UVdizOxGp|F# z`LVQMK6JkEqV;r!Jbr!9n8COb$@F@L9}MvGv&H@f=f)wllz{5#W) diff --git a/data/themes/default/arp_random_off.png b/data/themes/default/arp_random_off.png deleted file mode 100644 index d2ecee9782c4c1f53ec4d0e9d7460785469e94ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 492 zcmVMzCV_|S* zE^l&Yo9;Xs0004NNklnq~{KoQW z;c@7*`E~ka)hB55lUN$~E3i$TA(Bi|VC8+Wx&*u>lR5^t;Ft~?nP83uX5MG4062Fs zDiukQrj=Q4*kqJRa&Kc%4eW1|2!Lk4#kTjEx2e^(2Ed)5ihhv|Wl@ zbf_Xq1tFC(N#NsA{Vd+CL!7(Q?E46DvaHid=C|XaX$aOd%}*00003TP})7G#vO>H6X)*)&XtTY-QDMXV>ZA1UkdG zPXOqB^GTvWM|#Xx_gSPJw9F`YxpBlQi^$bhF>7s8H+$sm2y8i;-Fc$0|8&Kyi>?3v z|984kx*ZtM)+IrH!3<2y%q;Be9NgSId_uy)61tW)UV$+&37Lg;jV(QW{d4CnT)Jl6 zy2D3~oj7s&@|D|n9z1;bL22QV#-{)Od89-FmpFP&H8?Y=H8Q8TkHPBu&y*|EU3od~ ztdGzA|9y9Xe7t*rSbnm3v8&8Siz&>fiY|S>s(J5j+c!lq$4E=7-j7#2>i^1ovx-*> zdfrmNSy*)S#zv2($5$LQ>Mz|mvmyJzq?bE0&zWuC*)lVqvy}UjoY^*YSr;MQMeA;w z&zct`D%5p$&g-tVmN_mAlhf@!uj`mLH16F+HGOqnNck}%F7n!2>e|Q)3 p?$s&@0fT#YBXVy^Jif5BK5JImCo_rq^FW_6c)I$ztaD0e0sz0N>MZ~O diff --git a/data/themes/default/arp_up_and_down_off.png b/data/themes/default/arp_up_and_down_off.png deleted file mode 100644 index 5cb5cbae6fddfa77e6a6bcf9f844719e195e087f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmV-20nPr2P)%j(SH~0N>skp|Ihp% z_}~7&!+$4CC5pRd{Hyt&^*{W-_kX|tzW?pdI^Balr{ zWt2}^_Xp&L?EmpVXT}3v67|o%7}Xa$XZ)-Ep96HB-~S+xXU`z{0&33BCZGu+|DAyW z<%B(`On?F9{om}rEAGH{|8EO~c>JR(T>M`hUuHq)$07*qoM6N<$ Eg1i`&`2YX_ diff --git a/data/themes/default/arp_up_and_down_on.png b/data/themes/default/arp_up_and_down_on.png deleted file mode 100644 index f72c0c9405d0a2453e45f4cbca74c57b1f3683a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 569 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GXl47!?A1LR>X8G#L6A7-lgr>|tP- zz|7sx2jWg(U}$0BpUThB0AeugU|`tAz|a9kKn4)?F=$;-)4Qa$^6JVpH`ai(JYisX z!NBl}f#D4U!yg8Qe+-QO8JYhxOW&53y)A2V$|h+~Qq6&yDQBk4yE1RVwFOKMn3$e0 zbsq0zSjNDx3T!6O0SADHmEi~j!#M_qOAHKG7#MCbFx+Ecc*MZ)3~cy228Is|9D8_p zRtfOV=H;8i$G3t{@~WidbxEmHQc`E6zyJ90^A`&E{pa7me^(#u z1$u{pG0EHACBFD#pe~Rz!PCVtMB;LCLIcCK0y8#|2XEgs9NNzR?aDUCN8GOLRWDvi z9{BkuO7Pz~H??C;XA<;;r$^rzLb_yn3*j8XlZhD(x(2^ jx~oEUCce3G7Z}tVdW9Kzyw-dIx{blp)z4*}Q$iB}$~W1* diff --git a/data/themes/default/arp_up_off.png b/data/themes/default/arp_up_off.png deleted file mode 100644 index f99fb5d175d93f0e4b8f5bca000b0ceaf2a1d2c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 306 zcmV-20nPr2P)snKtyO*Y%ZncA9|*AHfmw8-+vMOrXQ zvn9=agz+l*#Ql^CDk{Z(K8rhSP^5(Wsx<4QOP?claadso=Um_AERP!oM0k{`P@&FJ zVLhWU+ej|=$u$Eae731lqe_kZWGSN=BiZrO=#ESJL>y43K@%S@*+gTxx0m>VTQ2Ak z5zyd}kTy;Hr2H=H>X9zTM1-^n*k_Lx9YO+H4AKAl0-wTpr|RHXVE_OC07*qoM6N<$ Ef}9zN3;+NC diff --git a/data/themes/default/arp_up_on.png b/data/themes/default/arp_up_on.png deleted file mode 100644 index 78e7ad37fb7a2f6a2b51a18384c5367f71086f55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 581 zcmV-L0=oT)P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00l7s00l7tx9uoW00007bV*G`2iOG- z6DT%>v_(|_00G5GL_t(I%gxixOH@%92Jq*6jB~w?AJv$Fi%YiXKp?h?$O+md5x59f zk`Y6zkZ2JS6e&b8yTpZv3tRaI*q@NJ3_;>qbfZNw16nPdY39y3_nsD-t1QV)&-y(- z9^S(%j4?P)B#xOw0nQVbo{x%uZ}0))_4@Lu%P+3@+DvT-PnF_B9u43$g;_LSTol{y zHrBJ<-e!!sG=+xvE5I^g=8fkAejC^0sU5H~ttOt8k1bO%o-+g=e?FKOzxxH2`DW_e z)b*;bs<;s&_A!DWKr3jyHIGc`&kgQydSYneMy5060tfT}=mA<`3&pTF%9ng{D8Nac zEe(`jMO_inT#BSKf$g?HAAmk!C)`2t^qDz6;|P~yc>wSp1pq|7(WkNVW8T5RX@{gU zfh+8{_=OZ|I1%-~@7lDI6-v$f6lTGAmg$zREoEC@x1@uERTeg9;X6E#2M_?z05afv zxb5|Dw>5VMg)|GsbCR2@H&;>rQJ1Mt;p86B)@`6;|8W7p$-R9bgvj@2o{RAp&D)$^ zxw>*;ZDS2iI@EO?jeG-5)r8tr5LQ5Y4V`Hy8$fxDTvJ1~rMMN242u8vn2wsCDRI9r THwpji00000NkvXXu0mjfR{Q#= diff --git a/data/themes/default/automation.png b/data/themes/default/automation.png index 9461fd03291f0b4eab659efbdb98beefdc9d15d4..65a0a83d01fafb0fa00a7d558260ce5e1a1d40e3 100644 GIT binary patch delta 397 zcmV;80doH60nr1H7=H)@0002jsm;m&0004VQb$4nuFf3k0001lP)t-s00025c>v9j z0OqFv=BNPZssQM#0O_s(>aGCkuK?<=0PC^wwE*q40PMB^?zsT&x&ZLJ0Pwv4 z@xK7_zX0*T0P?^9^27l1!~pch0QAQI_R0YE%K-Pz0Qk-T_b1N)_|E|O(E#|;0Qu4Y z`qcpY)d2h10Q}hi{oDZk-2ngK0C=8Ue34H%e+LH@1`4q(|40A;0J%v-K~yNut&+zQ zf-n?CQ3yyhNXJ4CDCPhE&-*eXFq)O)$?Inu!}u%ntiO-rH0kcc@EpLm=pVfbHTN6Q zc2agg8b;U3ZWUEk*JTZwx+M5Z!Mu*ES% zTNp-B7=@~>Km>l^`vLH`KzQC+c!cnT5Hz1KLL9X~xGv`|N2TIAoF5zngl#j%Y*Y$H rK|q+6X(BCZ3N=9NwLt8&{O}Q8gyU}oXkrgM>N1E#P$CM1|Zr|k0Ag5|F0`F z<@LmUmI-V!0IIEF}EPEJq|l8{!oac1E`HjgotDF#70r2&(n$;v0v!NbR(+-Vq9_tVcEXcU8|tDnm{r-UW| D&Nw&b diff --git a/data/themes/default/automation_track.png b/data/themes/default/automation_track.png new file mode 100644 index 0000000000000000000000000000000000000000..40fc9a50b65787cd38579f59bb78c6eee4607453 GIT binary patch literal 752 zcmWmBdq@*d6bA5bsm(1cdyGty3d^JiNsy$-NSlx8Tr~$}6sVAy8@Y5~YS0j@mARS` zjfx_P`B+VDYTDEmrA|#v)>6@Yg-e~zy)<1byTb3>kMI6@&YjcTSRcAS9e@uzj>RLn zdu_Zu$jf?lx19tfhZh?Kb??p@Qf5zc_|YV*^Ux;6loBSQ9Ht8VA}TSh!i);juQ5Zs z!HgQSL=DU}n5~7G&|ppja~3tCvUSZIc|1-2GgTVW$~ zuvki`RI0-!#^>B7#u@g((So(tBy;vr`V&yBA`>{e8;4)z4 z8(c>GF~ap7e~3Z2i6OX$@pl;R5&Rp)>Nt*N<@;`@hJ=>Kcveo=C0G5MeCJ-DD&w4Q+U#(VgMb~)WvQc53jYHx^Hq)j literal 0 HcmV?d00001 diff --git a/data/themes/default/colorize.png b/data/themes/default/colorize.png index 8cab3303e5593469fc3601a17034ef91e6302a62..e31f00e9ff39d15983c50e17f3f081565b6ca6c9 100644 GIT binary patch literal 1445 zcmV;W1zP%vP)$N%BhisP9PW=f zBs0rEU9zyv>DYWEhG~MJfuJCdPEc%%C@2#xB0{N95iBpIyey+y9)TjR2*pwcrI6C{ z-MIu5f^OdAli%&{*ZaBWcW%!q1Mo`N`nq?CC?b?t#P6+V;xCAk#Ml3|_W#65gv>X% zzCv`VwCKi-yz+z-X{NYi8HVj%=}MBXel0OeOIyN3B7Y_pd-2adgxBTf6gC;vOf>8{dR-MJA|EGyoaT3`I(7Vyi!cUlO&cclt|<%?V|#N!C*0) z&FJp#MpIK0ii?XOkw_2~6@~ctcvMwY#gS07hlyl#%_El05;MSoq*vZNf4-q^GANBO?QCZEX|JZl#wO?_uIxiuNQicZQhNv6Y11y@q?I zu0=%PMoVA0M0#2*95Q4&b^_h#aYOBGQhI4p5rV+w&B9)xI%F!bNWYq!0@T z4?gEoS0bB`rT!RbE^u(b6~-VU;)tWfej=Fe$Ixa^DN2*c1fHs)r)4l}_M@%lbXg5M zx1FT2N&L9@LoVeAeY~uNB#{$bE+$U9xFFTvANRAfF)}g&o6QD`#eyM2Jus|=Z9s)* zs+~}NnVvOGe29w|6Vb%Y;J{T1g_9F9R;<9a9Xn8wmBkO}xo~O>>t(RCMZ-Q&30RF7 zeVl^MisO0}OX1RNV*ON(9f&y;zt_!`E5|eq4X|3R7#kbI^kKI=hOs&T)fe0_&=3r( z{u1q?p$)1rpx%vA+0}z2UGn_!#9;o!;e)r?hI8)jt&NS1J;TGpGo<5&YZ$3|56=qU zKwB0=uW}QHTOwe8Cdc?-4J^7dcvA73rO(;Q+ zA0K}%wi)lhUgL?u(&gyMpAV(zZJ25UF`_#SYi|LDpJbu;{w_Q^y1SFaySRAWlsIXK z-{w_6uyNHsUuVu z-O+V-8}zlmL-SWHFQA*Wc6Qs0b9L2B&4ogtZ)Ihrm6z@dvjz6X%`o0^M`z9=RHiVr z6nu`3mNJx=mv@DShrj>Qe!O+wJi*kQ52;joo%ab|!u;pQ57gEthe^2xUHLB1RqVsx zT{_g)*LQ`5g>8DRM$ZWi4fV**&K{z}XjsG5QYSL--OO6Q2^FP4da)GXdd3%qQ5t#30shR?5sD00000NkvXXu0mjfqdKse literal 1557 zcmV+w2I~2VP)%*K_CT8GGV!9LIJVr>R3z=)F9~V}d__4`ah6?Fry#cVmg>#*$uJn%lm5b!K{IaqV|Ace_`L zP0Bz3C;$`Sw-<2wbGg^^C(iwN?4=9e8vXLSV`}_m>tcPJmB69W6Z~aGGvai~weBEl z+t`_dB>E4Fq45*3iHVV;j%qyHs&8ABhQHpGboMu~e(@HOcsBQP{+TmBJ$&x1)9H!l z4Pl#vJ(tCn!3|<0e8Eax^9{cNt5=}921CP8tzr!x_wf>vh1h;z{R1{^Ysyw+jDi{Op&1E0n6f zJ2qg)f7mLY`pS2*xi4iVMHncIXoswpFfxI%UqeOGsPtjXbRI+QfRp3EiC4vIFU^fz zS}cEaqor;FZ7X{)|L%cP=k3+y<=CO5O!Wzh$8w=eIhv$yh*(&JFhJ-KJOvhr+$4t5 z81WRscfnhOsKC%JV~67A7bp5oUs?{103|CqGBz5`CdJt|--!PtpFP>BmX9T}S##w0 zRMhEHi0&pR31PS!6(Y1kCke@_xXDA8enY}$k?73lO~cbZtb17HJ|dFz2+5~ZbQ+7C)8 zLrK$)2w|BBp?nB>AiZ6I^gwn&?m*CiUI*#7XqyS@@#9Dp!>-*W(z(wk*E{N?8+sNf zn3WFh^jdghrcmwPDXf~>Eyv_jYLm|E^N-`~VT`8`xmBIFMDrN=+==aA36hkNKn zip{&E?-%%M!S^n$Fas1!Kn4o8y2I_IEp_wuy+%_vYS{w`o$gQBrm2G6=|hiDS_F~j z2&|_u@L38U@P4+*wf+r0RN7jFkOOsDHTIfJhD!za+MzG`Hl}?gvKh5`@+iZpby)eKjX#RMU z_Ii_hz!uOkc^nN$4c(SUIUDhhjAf0dvT4IIb%#pj3%K43m^QSFB?i>*Ii{8vt(F;D zDKkIq`R~uOvfg4w!!@AvpMrf^Ad$LHfA0f^qL(p^ zF11>~#RcjAYL4|!%UlZ-SAmBl{C*Q|%2xdlfo#w}}WKC?F9+ia-!02I73$?=9}Nu_I?;n@zJ*%`#HAo&%Xo z2CnPEbzR>@BqLc>RhXvvDf{3t_xh8`q~A96B%Hbc#jAMk8h2T+1Z{%0vMfVYRi9N= zg|6$qjhDFN^M?ckizG?VG|lIDJPy+|C+;F1k0YH<`>g9a5{X2p-*KGCv5_H2CX>iy zGCpgX23^-D3Xo+Pu~=*(D~bX|iQH>gK$J^K`V)@3-m5E$60%nmC1mdjhzhe5T--ZW z!3AB{4Nd5}u0P3V?8gOp<0AzGcl?nD#_hd+&*i`DfuM+}7zQUC51AJNuWej#EEbCl zVPptMqCXhGFy3#vk>enlOoiMYtdB+xQt5QyW)w&yX5KfX#Gq+`eWV2ac+4J)=g4}F2F*`f!vt?N@3*ZnCwjx&)XLvV0#;Aidq{XHHZAAP>NyTjAdQ;1uw z7V`N#gb=9L>#!^f`FtJ#P^;C@>2$ERw&ruU+r{eYDgfZ-=EfJ`or13be*3SO=$>6u00000NkvXXu0mjfZeqhS literal 0 HcmV?d00001 diff --git a/data/themes/default/sample_track.png b/data/themes/default/sample_track.png index 8a30401bfaaab7512dfdfc799c9c1c4db9d554d7..d65bc0752766691687ca63d25f0623225569ee77 100644 GIT binary patch delta 2438 zcmV;133>L-3%(PO85jlt0047(dh`GQ00eVFNmK|32nc)#WQdV4Jbwv0NklY zYm8l0703VkdCtA}+&k^GooP#33Z+uPDQF2*9)b}~tUPSu0|fy;h^UYl63`G)_@c%D zqEX8S9vz8+(TG9u3AGv|<)PqMD9{3(mKHj%PVYJQo^$rw5BEXAB80e-m3^}JUTgjK z-fORY5JJFP>E?U?#ed(yq`NqBE60)*8aN1h|0Qek$HE#sCE`)Fr04QY_=6{7*m$lR>0FY*?+RW5l z&8%E|%cgA<0G6OmU0G>NVnQ6$(;HC1RbAT^|6}ERbZq>+0ImcOy$&ER49Qx$(hayU z%~X_TssRAav^=4imdB>4`baZV$8^k=ppqv{Yf#ehav`~vtWGo42iUavAMCK;1i)$l z62RjB0?1klS$|7a0U&Lu1!<<{_W?3hNi&6JrYg;}T+lOgc|CF^s}leqh=-Qd?oM0k z_}+NdQfqtPrLqn0!zus*z&rq}dSe^_T5U~?^_7mHUSzGm*f~Gm-4S@-$yfk`08l}L zWVwi3NooKA2*~it`ucxP+`s;s8|;_4pjL2tI)JADpnsj~Q;lF1DOo#`yzl3502t$| zUGgDo{aWk%%ZCH_5P;Az90rh?pYX>WFRnlP*{@t61eLuY?cAJa zrGMNyFPsaABzyf4v~xpRZJl&?U?^+pqq0n|>Ks9dW>z9i6`EN&2mnna#HO;UjRz$J z2-rOHQh#orwy&W5p2u#>%JS%TZbUCgQJACi!bC-3MNt?Or9JNUpFg?$FaV8quHV(& zja6Ao)zg+*4FJIdj8RC*5J!9s0GtRwx8ivW3;+RM#f|gw<3HSfW+C?ZnHA43d+3;U zuKNIaVJbywqq4N3R2HSOCn)8P?*kNtC3#^+x_^_02_>ji#j1^$j*&(^k^}V!1C0m+ z^?21qSKPN^4izF?bwMTS#5g6o`nXefe{<)^pRWNe;>lejzh6-lwtobrvQ?#QwbWK9 z?Vz<=thHPB8h|n=N;?7owW^3~Re_`?<0O&G>xsOukwj?JBQzS(IgLhi$-jSn%%CKd z!GCHbKmaVNtvI<>6^jRW1IIsf>0Q~vy_LPo9~V6Vx zs`UFclDNJ3)6z)CmKBf>wLvp zzs7Pu;#`1pzNd>g08mBDd6J>y4|bL%`)Bgzq49N^d~e+iCmq0tEmc z0`Weyy$_c-AK+Yobson0J;wO`N`G7Ag+bQRAoOejDo36zk(5Q5Ia2x)!&s?!fp0G)u=zhI1;(8fV)2c;~^ z(tar~%+6M>k+l?>Y590FD|gMU{L7yYg{kd@)(8Q}%50O??j~&#}wv|Q*0ehNH{h}z%PE}g8Xtuqm&4r=;BL@NCzRjO8f-@}y+buXt zIiuj5KEoKjqYn^ATt^XmSbuA$^THr64BENbediA^&{<3Mf+J1Ut~6DfW@ctFV`uZW zQV0mx*8IsUd0|Xm80=p6fLQb3Wz(?~Mem@cWGyLJTL{|h=Fv7G=+-_!CFZ&si$|&z z!9cLRog3e3>D@r*G3seEE7QAvbU~QK45sa5yIp96Zc4RtV?hAP>3@!+CfB}PiFw`w zh$B7`MJ$gbPb0|@3BFGXHq|dg)vC~fvsqyrmB#He);F#7ySims`_RdBLP!n(&!*F) zA()EHntnznHED#PSo`EfkIE{W7LxW}N>pOLHH!F@l+1OC96J<6e7X;iRHf0vDQVcO zwSK#??j+~J?*L%oQh&N5jBJNl`U3WcZC4z9+ofM5d(fVonR|I~pdP|2f#48$eOMNP zGjL813PGo&V2k?z6|p^%>^UjfaHr6*eV2cJo$DV#ttxd=lj@FJ&v!{8Z*C-!swXl( zV{7gF(P#)%Bp?F7s{jH#7J=V()49HpL_Y<9dM%ntlGgyPz4G+u z0iaqDGn~`20e}3hH^w^#Qd{d)uk)AsqcKzX@ocljCbH*2D+YVy4(y`;gsHS45v`y-p|bDWg!C%nslW`+ko3 zK7k+9DB~6e=EcB#2R*H!5x^+!biYFr02=kkbp1_nPJd_K2yi6nJVuoK{dK(_`&j{a z;gPmeutH>tqPQ{J#JMfccOZLW8Y@r^77J zhRY3s@)|%6U<$zWVcH5ua`sLDjyRF@UVVgj66nq3KkWr5q$*;wZU6uP07*qoM6N<$ Eg7hw#Gynhq literal 1485 zcmbu<2~*QY7zf~m6uAt+60s305jmnF0*Y4DLShi8$R%Z>(pD^Dff10~1B=vZyo!WI zIYd!G$`Py+5JAX6FdPO$Kmw6)21tMehzCK=E`L8lpV|HG?9R^4?Cd*x&DYxVt);eK4}*fb1G+I?^*z~pZasM_^+UJ=H-vGvIe&I4C(e`FB=qdgDzR#G%pY^uofzBB-;dxVX4P zQc_x4$`F(>%a^bDd?xROw79yuy0*5K#bUA9oMl{YU0ofI$E&Zee+8*u@cH}(sE5}e zYiMk0dj0yf0BUIw3Wcq$tsc^^z`)hA=Hw7XaF%eFgPe1lp%%?!-x_2@cZErNG>0dE98(uAy-RJ85>Xk$ylZ`7E7j0)-j9{_<>`5jDB)vPGaVWyX z4|_$}kb5nR!Fc$Qmmms1BMKEo2H^q%jHQa+KkanlCw+{u<9tTHd2|8(I<<>_;^4Eq zzAAGQE%SjyV|F$s;b$70y!j^M7D617nn+!YOxW7G+XC& zYe{rMEkekN4ow>}n-g3+`>pK~{^(9SeV^*j8CGm@$e@?8Lbx^SZg}a=(n{+2J8qso zw~(8c#7s;-48%)b7yikxy7#iO^FB>8NM>9KyV~4J>dV);d{FMgX!BSqQLpxx9Q)L1 zQyOKnsbkd*x~MNxyXBeqj712~GQ~>AzG}Oa6Nho7{+3KN#`pb1avpO16rEL?rq$n| z#fj+?A2;ati&DF!xRtE)a{&@Ey z(MNdUn;*bVuf=Lps%m)Dtl4ZoyPg4U$(ZVv1@93j&%?ZHf9NR*tpET3 diff --git a/data/themes/default/style.css b/data/themes/default/style.css index c1a1ab342..14dce7b6d 100644 --- a/data/themes/default/style.css +++ b/data/themes/default/style.css @@ -102,13 +102,16 @@ QToolButton, toolButton { padding: 2px 1px 1px 2px; border-radius: 2px; border: 1px solid rgba(0,0,0,64); - background: rgba(172,176,188,32); + background: rgba(172,176,188,32); + font-size:10px; + color: white; } QToolButton:hover { - background: rgba(255,255,255,128); + background: rgba(255,255,255,96); border-radius: 3px; - border: 1px solid rgba(0,0,0,128); + border: 1px solid rgba(0,0,0,255); + color: black; } QToolButton:pressed { diff --git a/data/themes/default/surround_area.png b/data/themes/default/surround_area.png deleted file mode 100644 index 5b871b28eec78a8378838bc0b1834f9f7523c8cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3075 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 RPM81y002ovPDHLkV1irJ5-R`z diff --git a/include/automation_track.h b/include/automation_track.h index 35f5c7207..0fcb2efc7 100644 --- a/include/automation_track.h +++ b/include/automation_track.h @@ -31,9 +31,6 @@ #include "track.h" -class nameLabel; - - class automationTrack : public track { public: @@ -72,14 +69,7 @@ public: virtual void dragEnterEvent( QDragEnterEvent * _dee ); virtual void dropEvent( QDropEvent * _de ); -private: - bbTrack * m_bbTrack; - nameLabel * m_trackLabel; - } ; - - - #endif diff --git a/include/bb_track.h b/include/bb_track.h index 46a75c25b..05f85a812 100644 --- a/include/bb_track.h +++ b/include/bb_track.h @@ -32,7 +32,7 @@ #include "track.h" -class nameLabel; +class trackLabelButton; class trackContainer; @@ -165,11 +165,6 @@ public: bbTrackView( bbTrack * _bbt, trackContainerView * _tcv ); virtual ~bbTrackView(); - inline nameLabel * trackLabel( void ) - { - return( m_trackLabel ); - } - virtual bool close( void ); const bbTrack * getBBTrack( void ) const @@ -184,7 +179,7 @@ public slots: private: bbTrack * m_bbTrack; - nameLabel * m_trackLabel; + trackLabelButton * m_trackLabel; } ; diff --git a/include/effect_rack_view.h b/include/effect_rack_view.h index ebdcdfdc1..90f4e24e1 100644 --- a/include/effect_rack_view.h +++ b/include/effect_rack_view.h @@ -43,7 +43,7 @@ class effectRackView : public QWidget, public modelView { Q_OBJECT public: - effectRackView( effectChain * _model, QWidget * _parent ); + effectRackView( effectChain * _model, QWidget * _parent = NULL ); virtual ~effectRackView(); void clear( void ); diff --git a/include/instrument_track.h b/include/instrument_track.h index 866259010..3922396b0 100644 --- a/include/instrument_track.h +++ b/include/instrument_track.h @@ -46,7 +46,6 @@ class effectRackView; class instrumentSoundShapingView; class fadeButton; class instrument; -class instrumentTrackButton; class instrumentTrackWindow; class instrumentMidiIOView; class lcdSpinBox; @@ -55,6 +54,7 @@ class notePlayHandle; class pluginView; class presetPreviewPlayHandle; class tabWidget; +class trackLabelButton; class EXPORT instrumentTrack : public track, public midiEventProcessor @@ -225,13 +225,23 @@ public: } + QMenu * midiMenu( void ) + { + return( m_midiMenu ); + } + void freeInstrumentTrackWindow( void ); static void cleanupWindowPool( void ); +protected: + virtual void dragEnterEvent( QDragEnterEvent * _dee ); + virtual void dropEvent( QDropEvent * _de ); + + private slots: - void toggledInstrumentTrackButton( bool _on ); + void toggleInstrumentWindow( bool _on ); void activityIndicatorPressed( void ); void activityIndicatorReleased( void ); @@ -246,18 +256,17 @@ private: static QQueue s_windows; // widgets in track-settings-widget - knob * m_tswVolumeKnob; - knob * m_tswPanningKnob; - fadeButton * m_tswActivityIndicator; - instrumentTrackButton * m_tswInstrumentTrackButton; + trackLabelButton * m_tlb; + knob * m_volumeKnob; + knob * m_panningKnob; + fadeButton * m_activityIndicator; - QMenu * m_tswMidiMenu; + QMenu * m_midiMenu; QAction * m_midiInputAction; QAction * m_midiOutputAction; - friend class instrumentTrackButton; friend class instrumentTrackWindow; } ; @@ -294,10 +303,13 @@ public: m_itv = _tv; } + virtual void dragEnterEvent( QDragEnterEvent * _dee ); + virtual void dropEvent( QDropEvent * _de ); + public slots: void textChanged( const QString & _new_name ); - void toggledInstrumentTrackButton( bool _on ); + void toggleVisibility( bool _on ); void updateName( void ); void updateInstrumentView( void ); @@ -305,8 +317,6 @@ public slots: protected: // capture close-events for toggling instrument-track-button virtual void closeEvent( QCloseEvent * _ce ); - virtual void dragEnterEvent( QDragEnterEvent * _dee ); - virtual void dropEvent( QDropEvent * _de ); virtual void focusInEvent( QFocusEvent * _fe ); virtual void saveSettings( QDomDocument & _doc, QDomElement & _this ); @@ -345,36 +355,10 @@ private: // test-piano at the bottom of every instrument-settings-window pianoView * m_pianoView; - friend class instrumentTrackButton; friend class instrumentView; } ; - -class instrumentTrackButton : public QPushButton -{ -public: - instrumentTrackButton( instrumentTrackView * _instrument_track_view ); - virtual ~instrumentTrackButton(); - - -protected: - // since we want to draw a special label (instrument- and instrument- - // name) on our button, we have to re-implement this for doing so - virtual void paintEvent( QPaintEvent * _pe ); - - // allow drops on this button - we simply forward them to - // instrument-track - virtual void dragEnterEvent( QDragEnterEvent * _dee ); - virtual void dropEvent( QDropEvent * _de ); - - -private: - instrumentTrackView * m_instrumentTrackView; - -} ; - - #endif diff --git a/include/name_label.h b/include/name_label.h index 04a3ae360..8696419a4 100644 --- a/include/name_label.h +++ b/include/name_label.h @@ -1,6 +1,5 @@ /* - * name_label.h - class nameLabel, a label which is renamable by - * double-clicking it + * name_label.h - class trackLabelButton * * Copyright (c) 2004-2008 Tobias Doerffel * @@ -27,16 +26,18 @@ #ifndef _NAME_LABEL_H #define _NAME_LABEL_H -#include -#include +#include -class nameLabel : public QLabel +class trackView; + + +class trackLabelButton : public QToolButton { Q_OBJECT public: - nameLabel( const QString & _initial_name, QWidget * _parent ); - virtual ~nameLabel(); + trackLabelButton( trackView * _tv, QWidget * _parent ); + virtual ~trackLabelButton(); const QPixmap & pixmap( void ) const { @@ -52,23 +53,25 @@ public: public slots: void setPixmap( const QPixmap & _pixmap ); void setPixmapFile( const QString & _file ); - void rename( void ); void selectPixmap( void ); + void rename( void ); + void updateName( void ); signals: - void clicked( void ); - void nameChanged( const QString & _new_name ); + void nameChanged( void ); void pixmapChanged( void ); protected: + virtual void dragEnterEvent( QDragEnterEvent * _dee ); + virtual void dropEvent( QDropEvent * _de ); virtual void mousePressEvent( QMouseEvent * _me ); virtual void mouseDoubleClickEvent( QMouseEvent * _me ); - virtual void paintEvent( QPaintEvent * _pe ); private: + trackView * m_trackView; QPixmap m_pixmap; QString m_pixmapFile; diff --git a/include/sample_track.h b/include/sample_track.h index b3e6e7104..ce0768275 100644 --- a/include/sample_track.h +++ b/include/sample_track.h @@ -32,9 +32,9 @@ #include "audio_port.h" #include "track.h" -class effectLabel; -class sampleBuffer; +class effectRackView; class knob; +class sampleBuffer; class sampleTCO : public trackContentObject @@ -152,14 +152,19 @@ private: class sampleTrackView : public trackView { + Q_OBJECT public: sampleTrackView( sampleTrack * _track, trackContainerView * _tcv ); virtual ~sampleTrackView(); -private: - effectLabel * m_trackLabel; +public slots: + void showEffects( void ); + +private: + effectRackView * m_effectRack; + QWidget * m_effWindow; knob * m_volumeKnob; } ; diff --git a/include/track.h b/include/track.h index 5730e3266..0f92d8b4e 100644 --- a/include/track.h +++ b/include/track.h @@ -553,6 +553,9 @@ private: Actions m_action; + friend class trackLabelButton; + + private slots: void createTCOView( trackContentObject * _tco ); diff --git a/src/core/track.cpp b/src/core/track.cpp index 15380e795..603a9a89b 100644 --- a/src/core/track.cpp +++ b/src/core/track.cpp @@ -1501,9 +1501,8 @@ void trackOperationsWidget::removeTrack( void ) /*! \brief Update the trackOperationsWidget context menu * - * If we're in the Beat+Bassline Editor, we can supply the enable or - * disable automation options. For all track types, we have the Clone - * and Remove options as well. + * For all track types, we have the Clone and Remove options. + * For instrument-tracks we also offer the MIDI-control-menu */ void trackOperationsWidget::updateMenu( void ) { @@ -1515,6 +1514,13 @@ void trackOperationsWidget::updateMenu( void ) to_menu->addAction( embed::getIconPixmap( "cancel", 16, 16 ), tr( "Remove this track" ), this, SLOT( removeTrack() ) ); + + if( dynamic_cast( m_trackView ) ) + { + to_menu->addSeparator(); + to_menu->addMenu( dynamic_cast( + m_trackView )->midiMenu() ); + } } diff --git a/src/gui/widgets/group_box.cpp b/src/gui/widgets/group_box.cpp index 2d1f6457f..b7b1a2a86 100644 --- a/src/gui/widgets/group_box.cpp +++ b/src/gui/widgets/group_box.cpp @@ -65,6 +65,7 @@ groupBox::groupBox( const QString & _caption, QWidget * _parent ) : setModel( new boolModel( FALSE, NULL, _caption, TRUE ) ); setAutoFillBackground( TRUE ); + unsetCursor(); } diff --git a/src/gui/widgets/name_label.cpp b/src/gui/widgets/name_label.cpp index 27fc1d414..ba71139f0 100644 --- a/src/gui/widgets/name_label.cpp +++ b/src/gui/widgets/name_label.cpp @@ -1,7 +1,7 @@ #ifndef SINGLE_SOURCE_COMPILE /* - * name_label.cpp - implementation of class nameLabel, a label which + * name_label.cpp - implementation of class trackLabelButton, a label which * is renamable by double-clicking it * * Copyright (c) 2004-2008 Tobias Doerffel @@ -29,6 +29,7 @@ #include #include #include +#include #include "name_label.h" @@ -39,35 +40,46 @@ #include "gui_templates.h" #include "config_mgr.h" #include "engine.h" +#include -nameLabel::nameLabel( const QString & _initial_name, QWidget * _parent ) : - QLabel( _initial_name, _parent ), +trackLabelButton::trackLabelButton( trackView * _tv, QWidget * _parent ) : + QToolButton( _parent ), + m_trackView( _tv ), m_pixmap(), m_pixmapFile( "" ) { + setAcceptDrops( TRUE ); setCursor( QCursor( embed::getIconPixmap( "hand" ), 0, 0 ) ); + setToolButtonStyle( Qt::ToolButtonTextBesideIcon ); + setFixedSize( 160, 29 ); + updateName(); + + connect( m_trackView->getTrack(), SIGNAL( dataChanged() ), + this, SLOT( updateName() ) ); } -nameLabel::~nameLabel() + +trackLabelButton::~trackLabelButton() { } -void nameLabel::setPixmap( const QPixmap & _pixmap ) +void trackLabelButton::setPixmap( const QPixmap & _pixmap ) { m_pixmap = _pixmap; + setIcon( m_pixmap ); } -void nameLabel::setPixmapFile( const QString & _file ) +void trackLabelButton::setPixmapFile( const QString & _file ) { QPixmap new_pixmap; if( QFileInfo( _file ).isRelative() ) @@ -83,7 +95,7 @@ void nameLabel::setPixmapFile( const QString & _file ) { return; } - m_pixmap = new_pixmap; + setPixmap( new_pixmap ); m_pixmapFile = _file; emit( pixmapChanged() ); update(); @@ -92,7 +104,7 @@ void nameLabel::setPixmapFile( const QString & _file ) -void nameLabel::selectPixmap( void ) +void trackLabelButton::selectPixmap( void ) { QFileDialog ofd( NULL, tr( "Select icon" ) ); @@ -141,24 +153,31 @@ void nameLabel::selectPixmap( void ) -void nameLabel::rename( void ) +void trackLabelButton::rename( void ) { - QString txt = text(); + QString txt = m_trackView->getTrack()->name(); renameDialog rename_dlg( txt ); rename_dlg.exec(); if( txt != text() ) { - setText( txt ); - emit nameChanged( txt ); + m_trackView->getTrack()->setName( txt ); + updateName(); } } -void nameLabel::mousePressEvent( QMouseEvent * _me ) +void trackLabelButton::updateName( void ) { + setText( m_trackView->getTrack()->name() ); +} + + + +void trackLabelButton::mousePressEvent( QMouseEvent * _me ) +{ if( _me->button() == Qt::RightButton ) { QSize s( m_pixmap.width(), m_pixmap.height() ); @@ -174,14 +193,14 @@ void nameLabel::mousePressEvent( QMouseEvent * _me ) } else { - emit clicked(); + QToolButton::mousePressEvent( _me ); } } -void nameLabel::mouseDoubleClickEvent( QMouseEvent * _me ) +void trackLabelButton::mouseDoubleClickEvent( QMouseEvent * _me ) { QSize s( m_pixmap.width(), m_pixmap.height() ); s.scale( width(), height(), Qt::KeepAspectRatio ); @@ -198,45 +217,22 @@ void nameLabel::mouseDoubleClickEvent( QMouseEvent * _me ) -void nameLabel::paintEvent( QPaintEvent * ) +void trackLabelButton::dragEnterEvent( QDragEnterEvent * _dee ) { - QPainter p( this ); - p.fillRect( rect(), - parentWidget()->palette().color( backgroundRole() ) ); - - int x = 4; - if( m_pixmap.isNull() == FALSE ) - { - QPixmap pm = m_pixmap; - if( pm.height() > height() ) - { - pm = pm.scaledToHeight( height(), - Qt::SmoothTransformation ); - } - p.drawPixmap( x, ( height() - pm.height() ) / 2, pm ); - x += 4 + pm.width(); - } - - p.setPen( QColor( 160, 160, 160 ) ); - bbTrack * bbt = bbTrack::findBBTrack( - engine::getBBTrackContainer()->currentBB() ); - trackSettingsWidget * w = dynamic_cast( parentWidget() ); - if( bbt != NULL && w != NULL ) - { - bbTrackView * bbtv = dynamic_cast( w->parentWidget() ); - if( bbtv != NULL && bbtv->getBBTrack() == bbt ) - { - p.setPen( QColor( 255, 255, 255 ) ); - } - } - p.drawText( x, height() / 2 + p.fontMetrics().height() / 2 - 4, - text() ); - + m_trackView->dragEnterEvent( _dee ); } +void trackLabelButton::dropEvent( QDropEvent * _de ) +{ + m_trackView->dropEvent( _de ); + setChecked( TRUE ); +} + + + #include "name_label.moc" diff --git a/src/tracks/automation_track.cpp b/src/tracks/automation_track.cpp index c37cff2f6..806fe773e 100644 --- a/src/tracks/automation_track.cpp +++ b/src/tracks/automation_track.cpp @@ -116,13 +116,11 @@ automationTrackView::automationTrackView( automationTrack * _at, trackView( _at, _tcv ) { setFixedHeight( 32 ); - m_trackLabel = new nameLabel( _at->name(), getTrackSettingsWidget() ); - m_trackLabel->setPixmap( embed::getIconPixmap( "automation" ) ); - m_trackLabel->setGeometry( 1, 1, DEFAULT_SETTINGS_WIDGET_WIDTH - 2, - 29 ); - m_trackLabel->show(); - connect( m_trackLabel, SIGNAL( nameChanged( const QString & ) ), - _at, SLOT( setName( const QString & ) ) ); + trackLabelButton * tlb = new trackLabelButton( this, + getTrackSettingsWidget() ); + tlb->setPixmap( embed::getIconPixmap( "automation_track" ) ); + tlb->move( 3, 1 ); + tlb->show(); setModel( _at ); } diff --git a/src/tracks/bb_track.cpp b/src/tracks/bb_track.cpp index ce1d0996e..b19555b1b 100644 --- a/src/tracks/bb_track.cpp +++ b/src/tracks/bb_track.cpp @@ -238,12 +238,7 @@ void bbTCOView::openInBBEditor( void ) void bbTCOView::resetName( void ) { - if( dynamic_cast( getTrackView() ) != NULL ) - { - m_bbTCO->setName( - dynamic_cast( getTrackView() )-> - trackLabel()->text() ); - } + m_bbTCO->setName( m_bbTCO->getTrack()->name() ); } @@ -529,22 +524,16 @@ bbTrackView::bbTrackView( bbTrack * _bbt, trackContainerView * _tcv ) : // too), so disable it setAcceptDrops( FALSE ); - m_trackLabel = new nameLabel( _bbt->name(), - getTrackSettingsWidget() ); + m_trackLabel = new trackLabelButton( this, getTrackSettingsWidget() ); m_trackLabel->setPixmap( embed::getIconPixmap( "bb_track" ) ); - m_trackLabel->setGeometry( 1, 1, DEFAULT_SETTINGS_WIDGET_WIDTH - 2, - 29 ); + m_trackLabel->move( 3, 1 ); m_trackLabel->show(); - connect( m_trackLabel, SIGNAL( clicked() ), + connect( m_trackLabel, SIGNAL( clicked( bool ) ), this, SLOT( clickedTrackLabel() ) ); - connect( m_trackLabel, SIGNAL( nameChanged( const QString & ) ), - _bbt, SLOT( setName( const QString & ) ) ); - connect( m_trackLabel, SIGNAL( nameChanged( const QString & ) ), + connect( m_trackLabel, SIGNAL( nameChanged() ), engine::getBBTrackContainer(), SLOT( updateComboBox() ) ); connect( m_trackLabel, SIGNAL( pixmapChanged() ), engine::getBBTrackContainer(), SLOT( updateComboBox() ) ); - connect( _bbt, SIGNAL( dataChanged() ), - m_trackLabel, SLOT( update() ) ); setModel( _bbt ); } @@ -573,11 +562,11 @@ void bbTrackView::clickedTrackLabel( void ) engine::getBBTrackContainer()->setCurrentBB( bbTrack::numOfBBTrack( m_bbTrack ) ); engine::getBBEditor()->show(); - foreach( bbTrackView * tv, +/* foreach( bbTrackView * tv, getTrackContainerView()->findChildren() ) { tv->m_trackLabel->update(); - } + }*/ } diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index 94da9ab24..1fc3811ad 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -54,6 +54,7 @@ #include "effect_rack_view.h" #include "embed.h" #include "engine.h" +#include "fx_mixer.h" #include "fx_mixer_view.h" #include "instrument_sound_shaping.h" #include "instrument_sound_shaping_view.h" @@ -66,7 +67,7 @@ #include "main_window.h" #include "midi_client.h" #include "midi_port_menu.h" -#include "fx_mixer.h" +#include "name_label.h" #include "mmp.h" #include "note_play_handle.h" #include "pattern.h" @@ -84,15 +85,6 @@ const char * volume_help = QT_TRANSLATE_NOOP( "instrumentTrack", "With this knob you can set " "the volume of the opened " "channel."); -const char * surroundarea_help = QT_TRANSLATE_NOOP( "instrumentTrack", - "Within this rectangle you can " - "set the position where the " - "channel should be audible. " - "You should have a soundcard " - "supporting at least surround " - "4.0 for enjoying this " - "feature." ); - const int INSTRUMENT_WIDTH = 254; const int INSTRUMENT_HEIGHT = INSTRUMENT_WIDTH; @@ -772,34 +764,39 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it, setAcceptDrops( TRUE ); setFixedHeight( 32 ); + m_tlb = new trackLabelButton( this, getTrackSettingsWidget() ); + m_tlb->setCheckable( TRUE ); + m_tlb->setPixmap( embed::getIconPixmap( "instrument_track" ) ); + m_tlb->move( 3, 1 ); + m_tlb->show(); + + connect( m_tlb, SIGNAL( toggled( bool ) ), + this, SLOT( toggleInstrumentWindow( bool ) ) ); + + connect( _it, SIGNAL( nameChanged() ), + m_tlb, SLOT( updateName() ) ); + // creation of widgets for track-settings-widget - m_tswVolumeKnob = new knob( knobSmall_17, getTrackSettingsWidget(), + m_volumeKnob = new knob( knobSmall_17, getTrackSettingsWidget(), tr( "Volume" ) ); - m_tswVolumeKnob->setVolumeKnob( TRUE ); - m_tswVolumeKnob->setModel( &_it->m_volumeModel ); - m_tswVolumeKnob->setHintText( tr( "Volume:" ) + " ", "%" ); - m_tswVolumeKnob->move( 4, 4 ); - m_tswVolumeKnob->setLabel( tr( "VOL" ) ); - m_tswVolumeKnob->show(); - m_tswVolumeKnob->setWhatsThis( tr( volume_help ) ); + m_volumeKnob->setVolumeKnob( TRUE ); + m_volumeKnob->setModel( &_it->m_volumeModel ); + m_volumeKnob->setHintText( tr( "Volume:" ) + " ", "%" ); + m_volumeKnob->move( DEFAULT_SETTINGS_WIDGET_WIDTH-24*2, 4 ); + m_volumeKnob->setLabel( tr( "VOL" ) ); + m_volumeKnob->show(); + m_volumeKnob->setWhatsThis( tr( volume_help ) ); - m_tswPanningKnob = new knob( knobSmall_17, getTrackSettingsWidget(), + m_panningKnob = new knob( knobSmall_17, getTrackSettingsWidget(), tr( "Panning" ) ); - m_tswPanningKnob->setModel( &_it->m_panningModel ); - m_tswPanningKnob->setHintText( tr( "Panning:" ) + " ", "%" ); - m_tswPanningKnob->move( 24, 4 ); - m_tswPanningKnob->setLabel( tr( "PAN" ) ); - m_tswPanningKnob->show(); + m_panningKnob->setModel( &_it->m_panningModel ); + m_panningKnob->setHintText( tr( "Panning:" ) + " ", "%" ); + m_panningKnob->move( DEFAULT_SETTINGS_WIDGET_WIDTH-24, 4 ); + m_panningKnob->setLabel( tr( "PAN" ) ); + m_panningKnob->show(); - QPushButton * tsw_midi = new QPushButton( - embed::getIconPixmap( "piano" ), QString::null, - getTrackSettingsWidget() ); - tsw_midi->setGeometry( 50, 2, 28, 28 ); - tsw_midi->show(); - toolTip::add( tsw_midi, tr( "MIDI input/output" ) ); - m_tswMidiMenu = new QMenu( tsw_midi ); - tsw_midi->setMenu( m_tswMidiMenu ); + m_midiMenu = new QMenu( tr( "MIDI" ), this ); // sequenced MIDI? if( !engine::getMixer()->getMIDIClient()->isRaw() ) @@ -812,15 +809,15 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it, &_it->m_midiPort ); _it->m_midiPort.m_writablePortsMenu->setModel( &_it->m_midiPort ); - m_midiInputAction = m_tswMidiMenu->addMenu( + m_midiInputAction = m_midiMenu->addMenu( _it->m_midiPort.m_readablePortsMenu ); - m_midiOutputAction = m_tswMidiMenu->addMenu( + m_midiOutputAction = m_midiMenu->addMenu( _it->m_midiPort.m_writablePortsMenu ); } else { - m_midiInputAction = m_tswMidiMenu->addAction( "" ); - m_midiOutputAction = m_tswMidiMenu->addAction( "" ); + m_midiInputAction = m_midiMenu->addAction( "" ); + m_midiOutputAction = m_midiMenu->addAction( "" ); m_midiInputAction->setCheckable( TRUE ); m_midiOutputAction->setCheckable( TRUE ); connect( m_midiInputAction, SIGNAL( changed() ), this, @@ -831,34 +828,24 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it, this, SLOT( midiConfigChanged() ) ); } - m_midiInputAction->setText( tr( "MIDI input" ) ); - m_midiOutputAction->setText( tr( "MIDI output" ) ); + m_midiInputAction->setText( tr( "Input" ) ); + m_midiOutputAction->setText( tr( "Output" ) ); - m_tswActivityIndicator = new fadeButton( QColor( 56, 60, 72 ), + m_activityIndicator = new fadeButton( QColor( 56, 60, 72 ), QColor( 64, 255, 16 ), getTrackSettingsWidget() ); - m_tswActivityIndicator->setGeometry( 212, 2, 8, 28 ); - m_tswActivityIndicator->show(); - connect( m_tswActivityIndicator, SIGNAL( pressed( void ) ), + m_activityIndicator->setGeometry( + DEFAULT_SETTINGS_WIDGET_WIDTH-2*24-11, 2, 8, 28 ); + m_activityIndicator->show(); + connect( m_activityIndicator, SIGNAL( pressed( void ) ), this, SLOT( activityIndicatorPressed() ) ); - connect( m_tswActivityIndicator, SIGNAL( released( void ) ), + connect( m_activityIndicator, SIGNAL( released( void ) ), this, SLOT( activityIndicatorReleased() ) ); connect( _it, SIGNAL( newNote() ), - m_tswActivityIndicator, SLOT( activate() ) ); + m_activityIndicator, SLOT( activate() ) ); - m_tswInstrumentTrackButton = new instrumentTrackButton( this ); - m_tswInstrumentTrackButton->setCheckable( TRUE ); - m_tswInstrumentTrackButton->setGeometry( 82, 2, 126, 28 ); - m_tswInstrumentTrackButton->show(); - setModel( _it ); - - connect( m_tswInstrumentTrackButton, SIGNAL( toggled( bool ) ), - this, SLOT( toggledInstrumentTrackButton( bool ) ) ); - - connect( _it, SIGNAL( nameChanged() ), - m_tswInstrumentTrackButton, SLOT( update() ) ); } @@ -938,9 +925,27 @@ instrumentTrackWindow * instrumentTrackView::getInstrumentTrackWindow( void ) -void instrumentTrackView::toggledInstrumentTrackButton( bool _on ) +void instrumentTrackView::dragEnterEvent( QDragEnterEvent * _dee ) { - getInstrumentTrackWindow()->toggledInstrumentTrackButton( _on ); + getInstrumentTrackWindow()->dragEnterEvent( _dee ); + trackView::dragEnterEvent( _dee ); +} + + + + +void instrumentTrackView::dropEvent( QDropEvent * _de ) +{ + getInstrumentTrackWindow()->dropEvent( _de ); + trackView::dropEvent( _de ); +} + + + + +void instrumentTrackView::toggleInstrumentWindow( bool _on ) +{ + getInstrumentTrackWindow()->toggleVisibility( _on ); if( !_on ) { @@ -1069,7 +1074,6 @@ instrumentTrackWindow::instrumentTrackWindow( instrumentTrackView * _itv ) : m_volumeKnob->width() + 16, 44 ); m_panningKnob->setHintText( tr( "Panning:" ) + " ", "" ); m_panningKnob->setLabel( tr( "PAN" ) ); -//// m_surroundArea->setWhatsThis( tr( surroundarea_help ) ); m_pitchKnob = new knob( knobBright_26, m_generalSettingsWidget, @@ -1133,30 +1137,20 @@ instrumentTrackWindow::instrumentTrackWindow( instrumentTrackView * _itv ) : setModel( _itv->model() ); - // set window-icon - setWindowIcon( embed::getIconPixmap( "instrument_track" ) ); - updateInstrumentView(); setFixedWidth( INSTRUMENT_WIDTH ); resize( sizeHint() ); - if( engine::getMainWindow()->workspace() ) - { - QMdiSubWindow * subWin = + QMdiSubWindow * subWin = engine::getMainWindow()->workspace()->addSubWindow( this ); - Qt::WindowFlags flags = subWin->windowFlags(); - flags |= Qt::MSWindowsFixedSizeDialogHint; - flags &= ~Qt::WindowMaximizeButtonHint; - subWin->setWindowFlags( flags ); - subWin->setFixedSize( subWin->size() ); - - parentWidget()->hide(); - } - else - { - hide(); - } + Qt::WindowFlags flags = subWin->windowFlags(); + flags |= Qt::MSWindowsFixedSizeDialogHint; + flags &= ~Qt::WindowMaximizeButtonHint; + subWin->setWindowFlags( flags ); + subWin->setWindowIcon( embed::getIconPixmap( "instrument_track" ) ); + subWin->setFixedSize( subWin->size() ); + subWin->hide(); } @@ -1267,8 +1261,6 @@ void instrumentTrackWindow::updateInstrumentView( void ) m_tabWidget->addTab( m_instrumentView, tr( "PLUGIN" ), 0 ); m_tabWidget->setActiveTab( 0 ); } - -// m_tswInstrumentTrackButton->update(); } @@ -1283,33 +1275,18 @@ void instrumentTrackWindow::textChanged( const QString & _new_name ) -void instrumentTrackWindow::toggledInstrumentTrackButton( bool _on ) +void instrumentTrackWindow::toggleVisibility( bool _on ) { if( _on ) { - if( engine::getMainWindow()->workspace() ) - { - show(); - parentWidget()->show(); - parentWidget()->raise(); - } - else - { - show(); - raise(); - } + show(); + parentWidget()->show(); + parentWidget()->raise(); } else { - if( engine::getMainWindow()->workspace() ) - { - parentWidget()->hide(); - } - else - { - hide(); - } + parentWidget()->hide(); } } @@ -1327,7 +1304,7 @@ void instrumentTrackWindow::closeEvent( QCloseEvent * _ce ) { hide(); } - m_itv->m_tswInstrumentTrackButton->setChecked( FALSE ); + m_itv->m_tlb->setChecked( FALSE ); } @@ -1388,7 +1365,7 @@ void instrumentTrackWindow::loadSettings( const QDomElement & _this ) mainWindow::restoreWidgetState( this, _this ); if( isVisible() ) { - m_itv->m_tswInstrumentTrackButton->setChecked( TRUE ); + m_itv->m_tlb->setChecked( TRUE ); } } @@ -1397,28 +1374,7 @@ void instrumentTrackWindow::loadSettings( const QDomElement & _this ) - - - -instrumentTrackButton::instrumentTrackButton( instrumentTrackView * _itv ) : - QPushButton( _itv->getTrackSettingsWidget() ), - m_instrumentTrackView( _itv ) -{ - setAcceptDrops( TRUE ); - setCursor( QCursor( embed::getIconPixmap( "hand" ), 0, 0 ) ); -} - - - - -instrumentTrackButton::~instrumentTrackButton() -{ -} - - - - -void instrumentTrackButton::paintEvent( QPaintEvent * _pe ) +/*void instrumentTrackButton::paintEvent( QPaintEvent * _pe ) { QPushButton::paintEvent( _pe ); QPainter p( this ); @@ -1434,28 +1390,11 @@ void instrumentTrackButton::paintEvent( QPaintEvent * _pe ) p.drawText( ( width() - QFontMetrics( p.font() ).width( n ) ) / 2 + extra, height() / 2 - 2 + QFontMetrics( p.font() ).height() + extra, n ); -} +}*/ -void instrumentTrackButton::dragEnterEvent( QDragEnterEvent * _dee ) -{ - m_instrumentTrackView->getInstrumentTrackWindow()-> - dragEnterEvent( _dee ); -} - - - - -void instrumentTrackButton::dropEvent( QDropEvent * _de ) -{ - m_instrumentTrackView->getInstrumentTrackWindow()->dropEvent( _de ); - setChecked( TRUE ); -} - - - #include "instrument_track.moc" diff --git a/src/tracks/sample_track.cpp b/src/tracks/sample_track.cpp index 832eac28b..ab2302a03 100644 --- a/src/tracks/sample_track.cpp +++ b/src/tracks/sample_track.cpp @@ -28,10 +28,12 @@ #include #include +#include +#include #include #include -#include "effect_label.h" +#include "name_label.h" #include "sample_track.h" #include "song.h" #include "embed.h" @@ -43,6 +45,8 @@ #include "sample_play_handle.h" #include "string_pair_drag.h" #include "knob.h" +#include "main_window.h" +#include "effect_rack_view.h" @@ -378,7 +382,7 @@ void sampleTrack::saveTrackSpecificSettings( QDomDocument & _doc, { m_audioPort.getEffects()->saveState( _doc, _this ); #if 0 - _this.setAttribute( "icon", m_trackLabel->pixmapFile() ); + _this.setAttribute( "icon", tlb->pixmapFile() ); #endif m_volumeModel.saveSettings( _doc, _this, "vol" ); } @@ -406,7 +410,7 @@ void sampleTrack::loadTrackSpecificSettings( const QDomElement & _this ) #if 0 if( _this.attribute( "icon" ) != "" ) { - m_trackLabel->setPixmapFile( _this.attribute( "icon" ) ); + tlb->setPixmapFile( _this.attribute( "icon" ) ); } #endif m_volumeModel.loadSettings( _this, "vol" ); @@ -422,23 +426,32 @@ sampleTrackView::sampleTrackView( sampleTrack * _t, trackContainerView * _tcv ) { setFixedHeight( 32 ); - m_trackLabel = new effectLabel( getTrackSettingsWidget(), _t ); -#if 0 - m_trackLabel = new nameLabel( tr( "Sample track" ), + trackLabelButton * tlb = new trackLabelButton( this, getTrackSettingsWidget() ); - m_trackLabel->setPixmap( embed::getIconPixmap( "sample_track" ) ); -#endif - m_trackLabel->setGeometry( 26, 1, DEFAULT_SETTINGS_WIDGET_WIDTH-2, 29 ); - m_trackLabel->show(); + connect( tlb, SIGNAL( clicked( bool ) ), + this, SLOT( showEffects() ) ); + tlb->setPixmap( embed::getIconPixmap( "sample_track" ) ); + tlb->move( 3, 1 ); + tlb->show(); m_volumeKnob = new knob( knobSmall_17, getTrackSettingsWidget(), tr( "Track volume" ) ); m_volumeKnob->setVolumeKnob( TRUE ); m_volumeKnob->setModel( &_t->m_volumeModel ); m_volumeKnob->setHintText( tr( "Channel volume:" ) + " ", "%" ); - m_volumeKnob->move( 4, 4 ); + m_volumeKnob->move( DEFAULT_SETTINGS_WIDGET_WIDTH-2*24, 4 ); m_volumeKnob->setLabel( tr( "VOL" ) ); m_volumeKnob->show(); + + m_effectRack = new effectRackView( _t->getAudioPort()->getEffects() ); + m_effectRack->setFixedSize( 240, 242 ); + + engine::getMainWindow()->workspace()->addSubWindow( m_effectRack ); + m_effWindow = m_effectRack->parentWidget(); + m_effWindow->setAttribute( Qt::WA_DeleteOnClose, FALSE ); + m_effWindow->layout()->setSizeConstraint( QLayout::SetFixedSize ); + m_effWindow->setWindowTitle( _t->name() ); + m_effWindow->hide(); } @@ -446,6 +459,23 @@ sampleTrackView::sampleTrackView( sampleTrack * _t, trackContainerView * _tcv ) sampleTrackView::~sampleTrackView() { + m_effWindow->deleteLater(); +} + + + + +void sampleTrackView::showEffects( void ) +{ + if( m_effWindow->isHidden() ) + { + m_effWindow->show(); + m_effWindow->raise(); + } + else + { + m_effWindow->hide(); + } }