videocut-0.2.0.orig/0000755000175000017500000000000010747142215013721 5ustar troorltroorlvideocut-0.2.0.orig/img/0000755000175000017500000000000010747102065014474 5ustar troorltroorlvideocut-0.2.0.orig/img/background.png0000755000175000017500000006653210605215122017330 0ustar troorltroorlPNG  IHDR((msBIT|d pHYs B4tEXtSoftwareMacromedia Fireworks 8hx6prVWx}0ƅ1x/YC?tDi= "Nx?~úw]G:j]:z5LfSf?=9m|ߪ˥v6{wrDp8hJO~#%/DZ/vyX">vI+ncPb)|?ù=)3^Gތ%8f7)ltS.|L?-(7n$X17$yL3; `W7@-_#PN|+_W|+_W|y57 /1wxF2 ?_k~.B ?\lſg'ڣ<#$>ϳW?7~-iaTHmkBF)3-mkTSx]w6k:>ٳgUG˲l7r%D[g;n:wf@"i]܄qkH@f0yo;kt l6,U5K^v#J{7[?Ovgn?;3+[Xq@*iGr. GS~ܙ8ݓ1< Ğ͍itIGG$Hw=*d(>ӧpDzRr.ڃټ;#9bw!G~,9VcT{-HtMĠuHtw2ʶWRG:1n*rK=]+\lL4U&Qsq[ C/f2xi1xZ oSƾmtpY\|0jKSMA4Y$ rl!Cڡ8S\S `z>}kV[q:emF8Fpԭ%@ l`4-gɖr=J#2PzyOy7Ԣ1|>N }8=]y6DZBCbYz*E(G=CQ:QnK%}Qd1`{iB>i_u-]"c A2hTʠQo#imTi8N;K qh}*C< C i9DsB[zF:CHg !!d J51nt.07@M*Z>ZC&"ϕ|;̻0Y`7T1?@M3 ;j7KeH ^9pz0Fϣ mRݜ0Z.Cn$KsFdU K%2-6t+ #7oZ,-"N nfUd9)JI6t^~3ŰӦ1T<ݓdwɂ|&[Zenbĺ@[KIIA ]V`h5Pfƞ0 Jx?VCP$-z[M"S1)&898Z<\n9\\f\'4KDECx, ;Uޑd80:e~N^0<Ko1 A`)nA`bJ>a~5ndi1?6‘NC @~Nu:ՅYȄ{lƳ2X[۵\0 >7 >r=A;=Sg`Gw\1Al:X3ќmLJ[J'>" +Bi7\<3T7pu@}*? [B+LC͍gxdZ(TrPA86_*ƿ͊[L +)\[q~M*׋-` iriCS3zyRJ~́~E: )LSB23)J:FӀUhCu6EuÓg kabZ\/ɹ$/~[]6dVܸ3Mqy-iK`n7ʽVC$m=ڜ,} y|P<\25d 6ĆCU! U/ !s)5(e{٠W[}%CpR*J-n{oXŁQoH`Y00> 8M a- )о2S PД;SCے6{y``(2A &ĎA\yJiU].#LK$UO{z%Y&7Mq*7_F:i] =hK$ ~Hg͊U\Of';.V843}٥Yl[^cJSVh~$A^YUftHz4NMܦc ~q&4)sSI:k$aC{ױ)\\Q4};HKx>%,=,-_ט>Z[Yߎ}Y3 ~rrҪϩ&7ͨVFnO܆ Ÿ;AzOBʜ(SMSKD#Зk:AwWMr&YKXd&2K2܊]5iFCo6+{<\?͸^M\UKDnO3WVIYKz$#Jt4z5iZH1?[9y#+qD5Y,۵,>eS%V/<v:j59LNn-2r 'w8V;f y#Nȣj20MjUjh4eբ׫Ikʤ5Ue=ֹBANsIc {T+]{Z OWk#vf$o#SV|5г@Ԑ6鿦lO!m[[Uzm/VpU=dS?A\˂cUwOk:n"ܐhXwNoEzi&sM+7ĺ͜"QtoJ!b -ZH LYkM xrdf+mTkH;2&cwf)q<`6f9c41nRU?ٲqlZmz܍Rhm0Yackl hп,֘LG BKşw)5x|ia*_gŒY'|C*mx SHn7M#VN1w>z[uvFRH0FE3V}6=9ܣs6{f8qZie ͆3uU#NX[TWt7Ry KڠFHLQtG!Xe!?_asiE`|ډ OA,rezݛ^/9%iS3b~Nuix>Q}3dmwvm} 8u%9=IWc? X7/#!tj 5m:8^jZ.`@h |ܢ5&]$1Vr^#tHj4~lҼLx%/35VǵXߡ=”\5C5C ]3t k5CEf蚡e CyyZvT؟9Us^sv5gJڻkv^9;[5;\s{o5C z6jf 09UsYst5G-rV`z]_:;Gyvv }yW3teyW3]`z]5Caz]ww5gל]&*u켫.sf皝at #-c̃Q&P_o@_; Z-<4}?u>>}'zOq&+1{Hh#  ۱Kc몲N G\6 i!-@~}ZtBߤ{m#-g2us_?Y_+ʼnOz+_)[|fιz*'e>)bOYF)kD¢'>"Qih#刌gqZ'kc O{"b$:b੗aK>We6yH!#*{68&djx9|KwG-}(s)]y(6qZh;gͳ\[ڢwϢ?WU`l~"砥Yv\svH2}OX^{=GPʆ3sAOMi\AtnѶimƝ6YE׻`t3?}?[=qmy|R0`ɥuS] ^)&E}mH^u~owe=_JDŽŤ(Kth +UNb7,ʩ {ʲ ?hE%9U;bhe&ЪVdJ1 ϷlF5~X\HMZE:VaY f{vT{OH%yxG6 JQy@pa}yͩ0xTw)r?S5+*vPbI+Vj2{o?i/̄/)Vjp/4[0-X,Fiyܻ3iy1hm*7DE%w|EḤ?Ğןjv[VY7{[\5F}X {#ĹxfLZz OrLo~: ׫׀gP=;)}1 !`d5'oWH~+6IRr ﰝw3; k0hNoѨFq}'䅚$dஉ{zCheGߏ|%(8qVQ}aZXML`?Fcv1&x s,g;UYul&Ѽ츨?Z֚2|ƿ%r_睡)y`D$;/47ib_9<C~vSyO E<}>KQ6,ϔ3QLGowJ>3ZnVCsRȏҚx*] }:L=p@m2L_[:jBE ѷ*{A7Q4dA꓆_i}=gm9 ]4%ҩv\bWAFGZ4GuvMq,W׳rqW yO 9h ֍-b9oЅn)uրMkt:P;vځgUA/6{/^?^¢6c?mshM_ ߾D,bR-Z!Ǥ&]4i 7',ҖuH?u#~693GB\qWN\d/̠y;b~5m{f#̈́gE5߻&~ 9Xk{GC~W&+aͼ۟=omL[%Ů 'F&{=J\o\{.YK0Ggy}4ʴT# Oaw6ozӣYo977b2SO;j>,`Ŀ3Nҷ.%6f %Xao~-Lm%;W8#ݯvclܾk}.K6I`>j{6v6};MF5SR?)MYxvD vPݼw7P#ffO%@>O .>=n ̣cptܥk!Áo!(xЄ-Lp`]Jnm^B=*p@hZ2t N^cr2؁Rv{(Mr{cz[==iu>]&:Cm]?TG ^g )?VLK4ZjnM@"r @4}i0=(rE-{JZAsrL6Wsk%KӲ*y4:RU|Α%UDSYQ.J:]hk~oʀpRv@ N~\g'=;KHp[l8CJù͖:i/^2 b :,?-Z>.~aAZ!O=vo/ЍYhAF.=l@?|;@}:O"/&&tmkBSx]N0Æ WM- 2*5X|DZ=fLc(F? hҶ BLrGpodgd/e>f 9]WA\\Lf[xilϣTs1H QlHاEt(SAZ_Y XmkBTPxұ A#0Bci:wRx׿ߦ6Mmoߦ6Mmo_޾ŧUӿJ|WO*_%>ħUӿJ|WO*_%>ħ@C*{17K mkBTWx흍8 FSHI!)$FRHnw HYx3ꇤsaaaaxIǏ'U{o_ھgW9 o'GW {>~Jlo߾)*/N\ϱov[iZ_ձaJΝ/:6O- 92b?Tlk%?_21B sY5>:>c=1Ow y^- ڶ,XzusM#גU]>H_yYv!ۉ_mi Rus]Xm_g)YY)m]y,m z1aaaxEߓGקo/Y\k6xjgH|yu.\aæM&wk#ϐ$?]Mo\Ⱦ,/ڥQ@~6s?)}, l gX #vQg Bٙ^uのuhm?}{].~}v_J;xogJY]޳@.)oqC?}>@Xߘ'-(W? źvƔOʙRv[K?[A}?-wmՑ}g\=c}M ggg DŽ-B^k_g?F? v0||؎=ǧHPgs/hؑI t~{n^}ZyD5XWvO)"c0vY Z|~_%/,p\ɹyΰZ/;/xs_9?Pܯ5ݻ\[y|č8gʱL{? 0 0 _k3>z_\S |<)b|7aaaxn.ta?l^Cvkؽ#~e)3<3^kdlc&jK+o"e<.ʞ`^(3zu l+6v<ï k7]/lc[`On}򚄫 G뎱zt^v2)?;Wmr5ocIz?Ozx{&!ez."ѯ 1Gg{+ҏlw<=}GݽFƨ^)zIpG K֜{{e G12ۭqiumf>.}~a? 0 0 [u+7Svq֭y΅ ?ނ}XwŶv?ߩDZۓ-q/?߳=<~#>Fk"qzrQo 9r,nY[;o:)@-`ק-7({߯S@µK9֠ɸ>:n3 _[_*mtcmC>qSL=<6;ǫsaaa{xˌ\ފpx?0׋#5zяc]x^l򼠕(f:~٣^lin59W~\;?vn6erUbS~v^U O7O(|;+SG4|?f*?rW~2oNٟS9~daևmH6mX[J~s.ym4ٶO|Bd/b5ɿyU? 0 0 0 0 0 0 0.P~*1@G\⟿KrKXs2(ߥ纎J8'>X@▼QQbqwx b)_K|v 1M6kee-2Ǜ59?K^E~9ϱQﱮYF8N?~;:=J<-tĒyNAgC \NXKs)'^Kg\~2}6}Գ)n]Or^j~"{p29w6/.z-v:+M{WJYZ굢`% Ҥl9ힶկ#OUz+U?;sd~vND7*.Y+v:ye;8}~|+ÑޅN9}{Bƞ#txխsXɿkSV/uJ=o G<ջL'L:D]6jfgLz/+ؽ[{rCMYq~[{yy czA;w9zszWHVax3 %mkBTx흍) q ĉ8D^>׻gI@XjjgiЃ`0 `0 ?ϟ|:seQ3|ӧO|:2|.};7eGFO6_Qv]T]^ˮg{>pjzkuo{yye?{-x/ D:3D&򈼹e^Hyi#/OGzϪ߯_~ :sMe#M3Y#=2 QЙ[\s=E8}E>GȩT ڲTg-}VfoSVwzV}./>~!?U1<#}=F[ ~QڋBN..+푹^edLo+[\-k dW(}6q$#?z6Bөi?L7!3O_Q}Пuo[=tkȋM!'}/Ƈdr2_Cﲨ: `0 :8o=+8-4}۞cĥXdq{bUq©ήm!ƶg*ΪU\z[GA=^+ru{LV U?)V>ғ)x|Yҁgi\yi^cUo*= !TY?rfgWsʽVn*VX#=Fϫ+[F~yH\L~[O҇h5ݵTow|Sfӟ+);F;:x )/OS yUo2e)Ve3'wgGg=J^`0  ľu kU,Ksؑ5nY,bXw{ w&3QהNQev ]ƷgcH˞i{A3I8hwduwUIWq8I>+@pQşGcZ\ƪUߝ]/:3d;ɫ:gB9R|GW~w2;fzt|+i5nΟgZY|<1NyŬ|E7k?z/k><=Α}N΅>uWydʬdz `0 *\?W8GY:Dgcg< 2+'W6qn؟{ru"wU쏘~c#T?+y{Q,,^qF/Xv8.֩g3}ȸOP ~n%hUG4(_sn|W}Tg&x^c,Fѭ+ <#+}/Uw8BRh_|33!mr\7U9m({ѝpvew[xG]߱?g;,nҽow8]וb?OV=Z_#ve?vN_WrYLo;1g9pV^G~>[_vNOS3 `0Q[ veO\k^8֔v<Zbz\Opbn$~}oz3ј mK vU]^iNWA#x딫jt q :E= z%օq)CcYEqyRG-+u (K\hP'*^ء^q=m=y|Kvūe\rȊ4={W1;=ݷxp;o@>ȘT\Ԏ+C=*ɫ|GJOCW]x1.ﵠ9_Eб Vq)v(ʑ}[GwǺ{-oSdו_˞׃2;iT&w*w:g׭SOsj%Z[~_˯d֮+w]7 `0]kIu+eL]ւoA^;=GR?v쯱;<y o$N1紈=:ߥPVu< <&3KyC/4r)i=*/|Ύ^]QNН1qGw>ù{ ?Kv:A}E:_n+{u=rq͓̳]>>d}+|L01`0 leg:׺񶊝`W,3O?]\9P~[kOWiGc~)-<w.3q}'vuw$Vnv(r52S;Wk_Kϔ8B/hEՠ'9w?K;x:x<|@cϽVyc@ۖSw8Bq]=2lBe6V}eR( VeZT4ade2ޒ+nYBTqSߔ<[&=f[|szP)G}{Zׅ3n7jpWwftEw[ǽ;`l? `0 `0 `{~i`oLy>uoi\qK|}7Svu9G쯿c¾#>,jow{ՆݲL=mW2u_8دjo?kD߱mw>#}E:OۡO;y`$jwymkBT6x횉m0]HI!)$FR?6c>>~sm+vuՑνYu8uN?WP>1JsWiV_uKEϸ/rˆ_gKW]ױEYcl,[TYHT}xL#}A GV7^}>iҞ-i;}LJX&TP3T#ߨgJl e'=?͘ona|7>?ǐU%;/mN/IfQփz{G}?v✽3X~j{zTAO^ʰ>?sy|G)PU{ ..T}6ڳ-F`p]k߅~b  О$wݓٱ|sCoA+q3lOx@(0a+? T,_7s\Ϙ^Bl1)C+k(FyN"8dPC_9>O0&l4Im+nwGrŰ)/tihf ѸX>E)<,6s45zb?J\<OM%O#(76:= ӋYAƒH Ls6MXBcX&ǘJte. 3.je(??Lj=%wZizFTx$kP8Em jAOހ>~؆B9 ֤8UKCvjbL Cy ;mj P. DkwUE€3ܨ8xUJs\ɟ+;}sFQ(KIXݛƨ 1 +KdX];Jģcx$D׷X`i @l̏rnm$^9΄zBGϞQ=nfkDe; <a>,⢞jk0B[p($Ǡp4 nq`XƓ vϵ.xHnorJ5Hu뇗 f a[Z:>36[g RL؍?( &w.7C#~B{] UW 71jk~ecGrD.=K@WDZM0倐0\xvqNZ ># BE )&yA}t?B Ym(WIpɱ |2+\2 )l8tl@Z.Be񅋍RSƃm>dIl'N adĢG3%#)?$s _5=YBR#-k"qGP-e"f%֩-ϓ378M9ϊ,_*n;HEBƱcl~ ˝[/sagIE2,z1t:kLș壋G){7ond{@rP>kwk׽ #kXfyEAB9uM4P=_lgW؇N#_nGpp ,ZUu6ȓVӰ0EK7*|]{75F\ԶzQz! uH>upT٣o3P)[^6` -d&*=%fY<^ط`_6|h3ء>2 Pq7ώ ,NsjF=B` 큳CiU)R鐏@LҮǧmb<2FHRqùFXi䎲OmGA}:*u f:@ʫRH.66jcGOpO- 6HKJU:Jǃv,3DZEƮqq7p?ȌK%ȧ$;?Qr6pP7`a^=R_)m>D3#£ _' Iɭu͋C-Rne㯄ssL<ȭ/R)|Lt_1Lk=rr 4/gEr~PnB[\g[{gYvRW' {Fem1{ wL;7&$xc0 n&u@5sCCձm8Heft x{q(aтa?Q%l4ςxmWI׆GC1kQ3iJh,KRO`ʲ4)%b6B8\pe;u)ko)#WSncRx{[sXv195_0Kՙ7>Tp5ٴl3S"؝LX睫[5m Q="u}pϘ*xbՉ#iM+@Z! Ϯ~jYݬ$?5mtu] %@݅:4h8ۃtu3; ΑO1A/r R*5i&j#Y2:$Z(ad@>'z L뇶6Z8|`6"X1_z' F-я?X^ A:?1;h/KVB' vOnFS ƤQ{=kh7MwXQp\v͓O/. N3HKRlK"q^Wh1wt h@3e6N|I;y?8t[[! $,ήLe"z%IކAkRl!3u8ځy?_W)AbCO!rza5Sn֗#<43y6"R߃CQ&>[# BHǽ{vekOTlq(UH͵h ݔ8,@tՂL{p/*L"d_y k,4 G̖bD>,.ok"D;|7[.DCA#ilϟI֬Dq]+eE _-- ڰc^Lq1~CCC9gNH8BkhJ#Z-`VoMa 9r$պZ-hkh ?C$ ^tď9d(8P݅]ڶw[wl;dn׆oKd Hބ(DInI M_(5)6H/Y1 QRk,nXHʉ?>df&6^EJmt{CCc`0ʅv5x<\9Yc}106"״!֏9dl:' 1H"z'7QqɌ#KR./CVgQȬ\ `?d1yuM6Ƶ8ZX]8^pwQE &1frRKi$GݜЕh3'{;;~FK37ku<pdʎ+C RMzƏ7)nҀ lEGyl:̑IoBS%|ЕsTulebA}Aʹ10A{KʘӺtjdLI=r PRg_LbR Şl?␔)![Fo wi&k^CV(t@pW2{hxHGRn͉eCbxԉ6GQd27\ثdS=\Ff*0ۣOP5(rZߙxQZ>~GAeN-jY7Ҿn;n?ӹ"Px}/NW:݊&׾:x" ꭥу;R펔 c䛅љElmG§a= h¨BG_uYnZ쫭FYs U"zM&:Gnu.DX5Xn;}ԫ%XO?~2&Frjj8 yA*W I9/ub)Zl: s 85J>~iI3Yԕ;:#hELם[ROd^GA˩f~Y!En0~/A Km>^WYq"<цF*c:xw|͞w%ehRgd9̕v3v Dgh>>?3hYDkgC(ʹƒԕSԜ| 2Q94(?OGQ34 fccPopTYaW(>@tX4`LGٞpɄaŰl\[9c26U M6f,'C4i?W~psϠ?kAKrŵk@I|>^xs?\`,D̒5W^w DMXf_8<%|8_왉pP1Wlm߃f?4:́_Ԕv M;k:p_sj؎qw]$F}y ,b'N=o0, ~M YR46+!}@~ujctCP.Y(x׎z?70WXFܣo3z0c8RGg0 TU򄽻w"/4֏CQ`[{Ocn]+{{ N!33+5]qpj' r9FDȬ)~: 9Gmx2-?sraG"yvUpa;Ră A\& ?#n 0eed~oq嶭!!DzP^H)>oȑ.ļԶ=Hy7S-M ?8ycߧq|#5"2Б lm#UeΤVbM͘jAc7Z ]> 4gb s 2WRsKg6 's8qzTT[R[w)I95xWj #!nN+zPڔ KgTE,?{^RDݥ=Ru^zîc&D'i74SJߔ&HUG[crͦ<׿~4}څh;lpAZ%XZ;tQ?yk1+Ƴu6[ Dc4Ɯ*dB#!}e>samhG3c^8u9󼵕⸈߂UyB;f "Yi=D =4&|C3g]~WgjhSIXU"1A5Fr4{AljwTt6</N \Rta| i>T.Wo>>xϯY{緷m,J{gg}v~)]s!?wXGFl!7U|Cnfﳅ:.@mq%臔Ru?.:aBֺE#Gg'yXDuSWNJD)21ѵVagWPqȒ s?¶@g")s\T{f3go^w:^"{d#!φt},nyWFKv„X4|VB~,˘_&fjp/WԍwaO H 3I`u1ͤ+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_W|+_Wݚw)eIDATXס0ѐG 7mD Lľnv}_ jGOΕ]Ԟ!gDg޽IENDB`videocut-0.2.0.orig/img/save_multi.png0000644000175000017500000001031410717117160017350 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME 8=LIDATh՚y|Tǿ.L&;!HE *ZQ bҺZ| jqC($ Lf'I|fΙs{stєd322ʧMv5gWFɲUd~'o+rGj=RlUvy%Q}D`g񅚦M{8%%]i(aV&5rRS|#2'nAu\../?9!~B !u]?e;w ġv^!a $NX\~"2#N&%93ロ{IIƖʾCut]0 &N}3p`4aHiW&LoT78pmg뺎,H폲t{ 9%Up=f{le˖-~B&O0 P1*!(.` ٟ"OYDŽQϘf}.-dxϨT5̯l,A}X21Ko,Pnn7^CLz;y߬Q]IԠKPQ||wsLaDEEץM$)ƄL&pwT0$}}d. Zv:[$IB~9^qeۆP"=zt7\$I= Aw*gw YbSxb|j2"r'Dbl J}*ЗKjIܿ;ʭ]͡:R/zEQPBe1yz  e1ѧ |[+F(IJ<}n*if&1~TӀ30TX1P\ª'7Wr}F{3^ 6fE~zAMXbҹwM1{M$ϔ(Ȳ{ƪ_V3 q WTr*b *t,@UUŔ쫣iKē&Ռ(5Ǎs09uF uKKi~<׶>f@ |Huuuݖl| {ʅ&N42q=4LҴ L̼e{o[[3bϨwNwtta_7 lUlx|؀%9!վ{~#ha'~^K6qZ!#Ybgt_&lP엁FzQ~ϬZ*+B ױ>nlFw,q:hpEl5d H}%ڹڛytC02{gLzG&5Wsߣ/St,H<,o=]_1Kg,Zy_&- ϑ9ovak̟ 4w[kf۷^T6cPU]؝9aI$6.91QCYz~} ;kNy)OV,KwgjS5pu>>f %.۷1v>iύ?ޟ\HB9H2kM䒉.xlHJb<}W4%|Q7 }kX8u9iy NQ\\<ʜ#P3<{X?2!n6Ju_a۪I f--C~p%iz#2>jk0{lv}$33޶[WH>F:Ȍ֢aʸ /Wtf/Ob^A!OBbt]q2 K&Jsi~ \Uξ5{ 1+h@Wwʺ% fpIԴDJ4Ta${']wo=q,)ݮsa)'5:2y6ɛ"Q4 {՟{u.znE+]T̡9~~ީi^)zU.E3Ԉdt]IKe3T'J%#CLM,dkC76SZq-gc9(gxOk]Cih<~ap\2 }E"q >dPU 5j^cTUsǪS59\bH$ ^9V(\}B>qwK|UȉiY8DR{lQÁ,Suđ8v8MlLi0kY7KrR^NTZ?se!](,e݈d v@jI2jxq7=öCS:' -Xl êo8Ĝ) Iw3u^f;~3Bw(\< !/}Eq,ɘTpJO ^]eú7uLJU:{QG=Tjwu-lι'rNK{ڌ6~*n3>5* WDO5U88嘈(D8u^ɼg8pzv<&D ꃸjf_X,pu>,X}\9LgK bz4,z՝"ܑΰ03O NxZNRlY; q꾞II:Z`}2`6;2A 4t6.at{l$8\ޔ2jLIWVtS(]4+hF5H†'":tࡔnqV86} dNoO9 Or;8r&k4L!ԅk9`s/1WM_ SjH-\A{N&dL>^BLR,8 n475R0rr˩V[;QXt(cw@I]P}ϙJfBsi.ӌ {qbHk }WOMv{ j[J$ыqO` xvv6& 0t2sL^>N;oن$I|Gɸ"2e5|Uf\Ik}N[-a(IT61삹D˦^~p^͍$`̀p[g37[DtL nsqkz4J*eH~r$I= @*[[[֭[IOO0 GIIIHt"]6",Q̹޵~ Kfi\G_6ۄz:kp1$I~S qUf~3.;ԉXR璒2_ _քN*l PsoBDvD)oβ# !J0 CeYRE2$nHDBgB$BϺt)K*?t`}mr`$Z@Ikg?ѫ tAu_IENDB`videocut-0.2.0.orig/img/options.png0000644000175000017500000001056710717117057016712 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME 3SIDAThŚyp?=3i4:@$i I@!5"c`*$P]9LTjmRlIlH ;;9  0,ġ{GsjΞQbmek{FDco 1v/80 0I|ML cWvFFFfMMMn^^^^BK;gΜi@H@0 ȩ2%??7ҦMv{m: (3e3g DQT"(vY>qO/zXtήlG>|n\,O0hР_y矟W;;;՞f6٦ZmV[UNg/{.] j0Tmv|Ⴒqآ$Iz{~^Re٦:vn[xܪ9tsժUMuuu3l#ًTAUU<^/`8^T{u ;d***L&ZVFEE7xO8)֭[6Z={>K|z)WwܹHGH-XjYU˩|>UQ5۷oyڴi[YS?QAWG3gƍgwIB#0& @$!{߾}[ w{u_2F#iii<̿DIaڵޥ'4\b0 F+ ``(Hkkk Ϥ0mnnk Bdk4Z&IJK￰{K7+,71=-..3Qh4"J"hEQ+ad߶m۾Xƈ1𡁔z}uvlkn*?~Y%k:}׮]coD0;qeL툢HD$A((0*jx3V3F%eܸ~ЁCm|A7Ng_KKWJ0L#Fwt$Ęd 5kVɐ!㺻zD"(5:VcH?l0$=۔^ک:};7)T D"˗Z>;{.oGQRQa4޽{NܩB'%%;FB!! &^(aE!c222ƮZrSDMJgWg.m:viFW.|pWVTTXf3߸\.V( LEQnt~tĉwϜ97LmБ555s6oÌL}kk+Ió?{h^n#_̙8}=!EA$Q?&_hU 2!FriqS[%U41P_pڥKf9NֿATq6K]ݣL4 Uw JcJrc7H Fp>ONE)^k4zYf5VGg"JTV7;lxBb:lGDXggT({9Apisνiˁ6A"t%I<&1]d4$eEFI>?" ,}'7p1x Drlf1l0V\I\\\8̙5k[PQ@"RjD%@?,5qTC|p Ǎ$]v򂂂kNIBf.df͚5$''`p̙3wFkD 3$!ADt UW-è*"ߕe{B. G7Ύ?q6JL_lGddd_LBӧmA} dYt )AuP;1d(2TUs¨ϋcIϡOE(.**J]~䤎222(++GGAfV^M~~>pթS?G.rѨǒcXhIvPC6@3s^U@ợ8,*hNgܱc'Oڹs疶6SvvvFeesƌC4ݳ8CpJ^"(w&0f{Q(N|(h-y!vWlٲzzz6.^xIssswccc !!aXMMMjKK uuu4}wP LEkP; Qgn|$yQl/l,R^xm!wAAA8 o~D/^E-̜5kؑnӟl<E!q7qњZ,z97 @r%( h4w\\\4--Mfmmm=>~Nz>EGMO78 lFVlb-`NII>|xA۲eKKll~嗫fs$Ins_ @n Q3IgU1EnF 7Xv_ 4(l6;z{{f1 fϞ}@WQ⥒B qsy:z^rYp8t.\ ߌ ;hۅr5XL+}dNH 2?SL!Zxgcuni(^w]J[$!IENDB`videocut-0.2.0.orig/img/fonts.png0000644000175000017500000000135310717117005016332 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME  tnkIDATh홽@Ɵ|wYnj AV `6^% ",ne!@6,[x!?`lT\K]#Y7a"y33fFFGK 4Dt Ix<iD1VH5J12^HD`0Cf:a>f׎Tl^ZWR'8>BDCKh5CoyV1!mh`Wxjc|j@eIB ! ywI~f m~s~oOJ3R)8ogYRCqDzDTL@)6uY "u!N c DԘ7a)5j%Ta/Ns\XJK)n&U^ozzU(jۉ>ZBfMl166 C02 C0r/ӀUz}Ck8(=(6(J_ $J; `. 76PZvLy]L&;0PT.˲N9gn>A DK79d,J]IENDB`videocut-0.2.0.orig/img/zoomout.png0000644000175000017500000000573510717117250016727 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME 4@r ]IDATh͙k]uk}yg0\1ƴ`NJcb$K~ պD~V]' VmZ5n .g<ϝ}sٯ~;eju>l^ksE}ݍCo&BzhGy'% }ҍBM)S[\#609)J QȦBXg1LwW-[_.\DzhH"U`6d;2j Z{_ڿ7~Rw& &rT*(% `"xyaC\ _3"5=λ|T*NJdTٹfzS@)%i B {$#1Dt?՘R1kdtOb'xԩ7Oq4|"r``jYqyx0!RȾY˞> 8>uO'O!?0XI2CYLH AiCspE0c=uI7kJ%eYsr", Rί'~@Z;,9X8& ktد0ou,JRѨ(tM# dzdHXm=E:x$B FvT*;044r*S-6DǍuZ!1ں;N,,O3Q,bJV]}jhhhGITZNV>{dBS[4;zX-`wH@D13)$"d9΄$_H5Zo_5Vm6kg}j(à x8=3Ida dt]$@*[-RjeCG6t:S]pY)JAX*X,Hٛ8F+c8Ú|3bk"H6_( hm:SR0qX*alABZXR$ooDGO%{̋RJ)544|c5],SX7XDVMK?M魛ƍ}Zkmy|p{ڵݭV}o sB}`ҖGGGk\z_uV4M{3Ck)G~3ψ?޶ml۶ ({NԻn:P*~* t钟\.յk͘AV!0;v8=>>dbbRJ188,j1b'J}eΝϟ?k .$I;w,* 8R B!znϞ=:66EtooGJsssByNk׮cccZaErܝuf9>{n766w+0 ZÇeǘA^Lr{?x Z4~kzz#G}6*1frz͇qZo^|hA)rqL&B17[ъhAJ)ŋ_8p@>4*$A:F>_;{3SSS?>cǎHd~_zy+ ^ŕ+WYa4 "d2{… 7+LΝ;[s֯_Acjj fBW\d||_xP!I=WsӈhV/J7W,\x 6(JW_}+n oڴl^{ϻrrkSf?=tPٳg?iCCX[Pkn-) mvIM5g>/ͮrsw.3M-'##Y-SgL2.__--|[{yT4 ZzIENDB`videocut-0.2.0.orig/img/logo_gray.svg0000644000175000017500000000442110746327361017207 0ustar troorltroorl image/svg+xml VideoCut videocut-0.2.0.orig/img/viewpanel.png0000644000175000017500000000304110717117206017172 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME ŏIDAThϋE?{v~&1jl"(!"k^ЃGAr !Q&Fw~nlLf7yG$Y[9}ANի .,ȩSgϞR.(~rL%J}+l;XPM9#BRTbDjc 7ژ?Ƨq  ݡT*1aX 2IߏNCEz1VZ4 W; w0I I=AXZjRV1On$Ix3OZO~7?082c:($Q,DH2a Ibχ'xg^wo9,}onw;RRnNSν}@}َ;V7+y#^p3++gΜ./-p_.Aw^tNtB_D1 w3XΘnVt}>L/BuRg_g>9g677))%̽.HM]UI9H9SV%*Ud*93.U~ƭwٳg~z+rRi-֭[^D"j @ Z_H €"FB *!}cQb"GBΗK_$"Z7Ϸ6tsuy?Wru>Kh47vi3o}iʍ9^{$vGJ`e>ZDxEm H`ep +pYz7)#\n-tgC!n)E\9{?|u\H%EC(ڦYF"ZӒtBD+7׹VPPjd<1b9>k,-/s#TUU+rГ$5u)=7J_fNe&7Hl+hu 7_sw}W:qvF22W B6)HM ąY-l69لTUů/aTĪg_Zz&0K`}J,@S|9E,fk-)vqNCQ^8w'TXW~9S3"X#) 2Utdlٳ.}H`{4AUֲiNq8 nK)immm*a{4FHZM i>@YȩN MS"ƽsY|IDRʚ'_\&w>&ɹ~kQll%3\yE"'&qܔI`4wik?)]bO=V ]no;=[Jq\!8Yy_u3(f &"Bm.'&|;Tq21us/Wlil9xbKh3j}WUh)otA/RmFG.Vh6< X 2E 7G]i݌x|ҡ>QUS"Ě@#puq Ӗ='?7d*eb#: X+2Bz-vxo{=Zk- ϩ]N qʡ~t9sa o]_{".]@%}QQG@u>I򴳻}I Z+vz}Pu/~0ґ~r'pXGemvbv6m}*ʩy30N1W@ JH@?L2usfz ̓>2wv#XIENDB`videocut-0.2.0.orig/img/save_frame.png0000644000175000017500000000501510717117141017311 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME )d IDATh՚Yl3k!ʤ[m8sI)(i%yk[ -R ZCH"MZ'a-'+ՊdKHś6-;3r?۝Tlpk]q @(8u >5RRs<0 \}d|@8 &WǶ52潵ZY F(q!΁ȓS) ZW`|@xYoRn1iq~D/1aԅ8ƫ`ANv>t#UϖƒP1UJ-_$`%)3 oc89\,[Strq wQB8D?Icx=V{H74$-ٔųyeA4ICEkx/v{Gˁxc?L! IB( Q9A:ODT#byQ0*0LTu$ۉϧXц϶ɬ'7챝%ۚ$` i7Qy*O(B"Z!P===6NZ``y, ZeH%ؚc`>$獐֭W&)]mT({K-ml] OG v򢟹\%% Ҝ*ԉ+݌f'A[:j+~p7[Ewv?`2 ڊRl7.Nڻv&lENG&!DT+Pa 4Z45<6]a:N9Q`ܻ@8B.Ix^>k# >NJqz%!K-`& Sl(KjT|3Lv %VK% }''>k"\j+QJ$#ۉtڹT+`١mD4M©WZ`(#`*dbB -Ikɫfz5ee.~H#kaH~#ࡐ+)}={.?D( elܕِ,l!3F IftN݊3L옍ᎸekD!G>A#zN#29ZsIGlhxY޲_E*Ѫ#(p]b_BcjEݯl.W/RPHVMJ)b" ߜ~'ޤɪ\V ~i/Z-?a*ؘ*$N6Ѯq4DX1>9vG=+WkhMc@-*ҮLx1'`yȆ-'qʒ3.o b[Iʠ(^?7$ ӨX|${ǴW;H)DDbW,_O=\;2?CBX{A >%ɕ\!WgW/?KkևNoaoyBʛ jt+qNN<Ǿ\80fʐ=Uق*O^V/ޡӴېj 7BCT+Pמy)IH=qcX~XO&c3 ۓd5&sAjq<|7ABM_b Jk5j\Gw=߄ wZ]Fݜ sJݜ-2})VLq^} 4[A5Z[S !M-N4vW˷fSìM6k>Ƥ~Ygk9 Q=n`Q=~P~]lr#am<4Yz` =5"u2&d8b:gQ-[YrDCnq3]7ˌpG,rI6mwhIENDB`videocut-0.2.0.orig/img/colors.png0000644000175000017500000000635410717116617016520 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME  بK lIDAThX{pTys]X-z"!icBMyT-,4ng0fH]qqVGբQw VdkZP?|x(Z Iu&񩧞;v1^W9I^Moe@ϨKv  HvԢQmt">g7nɓ'sN\bQ/Ȳ,yD3Ƿ*95хYb;wڵ PTTTສdIB`JR AiW_}'Nܷo~1)???`shΜH$'rK@rJ)_tđsMլXDVVs]PPA펛O/K9\Q`|f`Rv\r-9VkL$VA0gn7ӷg~j0- {|A',,<4 ?Grbr9؟㭭S@3 NgZ[5 ^ 7cҥK}N+p-CLxN`k'>Ok5@bb^lJ"زol|eƍߵG1Z,3z}p-+_Lf-D(ET|@&mnnog>cjky0.]d/,,l`NFFcVxSF"qUMM bVVGϟ&9hBO$Mq݄ƺuQ5? ~(PHQ-pܰa7`0xv`߯Xbn3cLT3oTѢ:YS睆UUUhkkׄb>p @aASL5&O< i+c+o;AKb>N>Ǚ׮^ș3gz͛ ca+N<ܹsEلIggv6{g I4|Cұw {;;;r\۝#|Xnikks]vZYYi`1C G6&\PgC3N!… .^ȗ,YnkkL4r-+V>|xhh&ǥVQAx2 {3Lv"w}+ϟbL#IRdmmm?v+)Fp`r5LYY O?;wniYv+#] t-ܜS-ÁRbu'>;`zQh4 ZV( =ֲ;bK+痕"(?tW>e_ZzV(&TR0nd672Td8eLS)6ؘ'~l@=7;w}óQ:.׺l E2DfX8dJ䰑E"#FF,129bdrHbl`ZČ,09lb,2I0̢F`&&= 0QI&.$%LzɢG\`:>Y kZRÉ_FU FMhjXSD[SEs uTHXWa$9clOؘEzEu{==Ǵ9*4Ku3/=-72%qkƵNL \<"'" DL'+DdU#D(JLUcc=SA"4"c$1Ug`$qMTM73='n鏞|ܬn%'B WlHf}"YZIENDB`videocut-0.2.0.orig/img/about.png0000644000175000017500000000527010717116540016320 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME Q} 8IDATh{UU?^EMAC,5G"hh63iyAfJKƲLG@4SGl$GyCy~>g}ιPәYY=#Be3c@OptOM_Yy{/ã_*0s-W<;!ucLs'Cy߰E~~4+*Z\@Ɂ@2~K1E =psԥ0sޅ  V6s|K3e NA5x!65]6Q8'.xނ?qy/T"E˩'ᆯ)k_DDsZaSOޣPrkz0a~y巓! ZO^]( 3Od_QrJw(+?3o $r X|xv)U]tN;!01WJ<ET^ d,egnJwa LPD o[OOÄY(活 # j*Ao] kxdz"fPІ|)aK0l*ү)$-E_ !o#x|61Q^BIP౩p__ ;/(qMdh.V7)gY>RDDK (=p([1\tj ֑ a:s8*;~_& i@Oγ,x/xNZ1/g7ÚCK .Zä"DWig6?MMYTXL]A$QbSx_}A,[8MldifRa萣Z-Z; /61GLRz W eY' 5ZOIv}:2M$$Kǡ`p,\8N$sF@<95{Y/@ Uak>gC k$򀜄XܵU(0zpS*$--}y@n98^#V.+Pvqak1Ʈ2N%N]o,!Y"'xUSYZN415?>z6ODS /HP{}bTȣSV/L(QeX634ro<}jx`ng2 PD6D{n\05*q֠=Li1pv3뫻Y`ɚnSW5*h9.U\`G#H2?>w?'xF*5/^ȜR9yc]kQ"ΡpxœQAfbiDťZdra;݉!j7RCid!tf8ocdIOhLmW_:Wu88l"fJ1>C@j{qI_ zX4A0r9EGY-}:F:-9LsrS([=Q|уt岏1 hD>t ceϑO5ۃPCWʟP!(-*^&֟W޹!-хGl/|'~S gcΧm}(ӫBj}vU%#VNw>tW.R#40KaJ@ObĄm9n`{+ym{@ȑ`(->?|{.@0F6`0\bL*YR9*>,PoCxĤ7⑚ ɼZPSV)ؔF72HIENDB`videocut-0.2.0.orig/img/logo.png0000644000175000017500000000712310717117035016145 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME !A9 IDAThZylSWK;I8hٓatT:t ʈALJUĈ}QEeTm4-)0$͐ MId+d8v{y`ډJW=;|}˹ 'xYR!##/˗t̙R<_V.B$ ,PggggϞŏ?[nAev ͦkE)2.\53πyT*pa`6a0022"[Voo/{>Q?jnn… t (##*,, f| ]:tvvk׮,ːeQs7}~?, a6w^x^W]]-vZ|.BdYVWW癐ˡfJLLq dBoo/^uv (*._s*^y\5ׯ_ǏeYpJ ddd$044e !W=O![L7Y$)955UE o%K`۶mx^B,Ӊr 0DKK Frr5\E㸺:?XHJJ qعs'zzz "l6oBhq}69e122C>k׮$Iiv7,TVVEEE===222>$cϞ=p:HOOǮ]V188TUUV888Hk`r0(uuW]Z,~tww# _ƻヒݻw NSEqaonYk*++w?_7oe>@ @$<8uaowwiŢe?qBTE&SBeiTqY(Axk.C% 99sAeB$IQuoIaq$I!!9yJѐ ,˔$I4MkZJ@ {yh*++Eb~Bzg}.\6l^B,YE! (Gmm-A,ߋUV!e f!jN>'Oj*\j8tӣ@ vV0^/RSSEQZM3@Q('|GBEpyzAQ3 7nܸ&++"jBpfABBBEkkk8tNS1c2xrxEɸs8<Ʀ{}تUhljFa,U'3΄:`V_ ׮hjf$$$`up WGplb,pQK!;;TV .ntPUVbHINƗ͛ӦФ62pF#: 5zzzYf3 AX`sՌIKKnWbaw-\.÷HJJBBeؾ6+p/ގTOeI8r,QA53ʕq&kh@rRfֶ͚6p?9WK҂{<^/NQR>-cPT[0*ە+(>xBֆ6>8u 3gR'J}S(2#[Sf&99F83iJ?,l6c˦Mpxذnz`0PS[vB`20oAYnZ"ܱ@4>tZ-̙`0sN< I$T NDgg҉NdXMy_H{'\.ٽWUl6x<|xa/!p;:btZ~;v@VGAMm-zçvvՙN兰AeYp*@"!;qppsB#:;;!"DQ$I~Rm˧"" 1kxBFݻ?;v߇%;BeC^2jDVj!(RxBHg8S084t}ʕK !$7gm&xGL&jT$߷)a$1_hC͡oE3 `@ P\C@b(xC`9P image/svg+xml Multimedia Category Jakub Steiner http://jimmac.musichall.cz video multimedia category VideoCut videocut-0.2.0.orig/img/delete_frame.png0000644000175000017500000000213510717116653017624 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME 'ĨIDATh]kTG3' b_!Wlm@lP^hA;JD(R6$"JYd "xWmEfqr^f9p6g3pԎQlsPw&t?o@k7!!h@YO@C@MP:z!WԵ £ 0/ĭ=q&"HAB{ n+coxF ASА?A{ odC0r&@ƥ2 =au=W0&v7qSVe^p)V5 mq⎧x 5XB+К3 M_g,Ck3@t5E|&f=!f{x!JxN(ZX[ZטˎCmG?] q% )"rXyS ~)V~} a, ?!臂D戝2Za4W$ =Z*)#WJ.YFWԤٺ~Î}˭ĺ6!Is¹n8ļ|lC~c%_+b/ K0,Ĺ %>" s@) &YǸ}#$GI|WiԳQ!b&{.W'LD k*UP@<@$DrV{9; ji.<]ٯ_$ކGhpBwf2j%A|fۆ&4_ҽs-@ (ݛێ}[܂VBtޖ!ބxcw0*g7j5D;ڤkѕqU>BL<`3nn1; v{jZ fe!t{<1+-NU9:֜1cO$-xӣîR +k IENDB`videocut-0.2.0.orig/img/fileopen.png0000644000175000017500000000276610717116756017027 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME .ȝvIDAThXME^Ud$b\1`l.A$xxKԛ (E$A$*$Mvvz=;?=ם j^wMu=?^hT{X;? oWD^{Lĺ,}zee%6bZ Igb."H?ey(YSOZ.b4yduhX$}#1X8͋ {ϼ',8g&Pp>"h*F*F8Ι:2lD"hJP]Z;cOzs+_ "ѹY=i@P] ~ k-L m @30 G:vVPr{Q|Q L#v@bPHaI%?:w);.Ad]u\# A)JR tx9PfAF mՁ4J^g(4[i Я@+ok`6gR`f@@_/AQRbc=cA[u[LfR+!ܖ*񞮃tD,f$'QuJU%dHZa'd<-`m⤬XV%K+cij)NIi1ub IRMo:}O{%MT35@IENDB`videocut-0.2.0.orig/img/zoomin.png0000644000175000017500000000600110717117231016510 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME %tb` IDATh͙iUv[׋ ^1ƱcL7 X h|a4"#ɇ(FLHF[!Ѐ;$Ґ8X[mܯU|nt >թ{ݳTۛJ=;RoC|B_t[;Wk|Gkb{ߊfj,^+B*yfwZwtd۶mgt4 z]t*LɃYA)\<+䒤rAj/ߺ* ٻs6 2A8/N`GRiL$Ŝl~G*$^ٹi0?NfÄ́@ӼVPDV`Au2 AFZ6IGv8G: Ǐ8$!ҹT{u(0D^4_pP^u3ݳp:ICǏ8:vXRbKe׽43_uńlj`yRC5.O4Z9'vEf ,xB:Ad -De>^"@&KkL2;BJ%j56^4ԣm=D2Z)#2y0C2({VOZJ%'rrKpce>)h,1\jI KL^cl1BdrBo^^3`@3ZCXC xbLଁw)5x7n8 bot+(X,QAA9=xIH gDx@7:gIR42At#Dd[N<m k/;I@B>`BX?+8TRQDd:ul1%k-A!0ײxzd4JvDbV?8*8aQ,xuffCc!9"jd%:m'Z!}^پ~=ɅYP6 45딢tKI-F+Tln^s$@ dm9QLHf) S䕬~#JKQRQVQxj9vkHR2s&hb4(UJR͔*Ei ($IJKyTc"0^rI㮬25G( (7Ti9Қ(iʼn fO>E`N}Jsh*i dCNQ) p)'B.EHk-Nd^tqM.{R;1Eo [IyMar8PSJ>ɧ5PS+ tC;BFQߑ_%oe˧9ZoD='rs"lL/7~]51Οr#JZCn|mr΋k'kכ,T?^|au$wr}g 6 >3?PK;}v6M;j q&ЊT.UnRFpݞ~RVr֭[ԯZk8zwoqsZACܸfM NR3ef Ms^p|*c~߿vvwwfᅪg>}ꩧBkS㾣zbi9d2YIӄ&jzZ9;}7=af4͛7oޜٸq#8FV+W޷o~doo8@Z 333J) >gϞOFGGs,xqj033Y^yݻ׏Xx7u=$I055f A.Bp|ӯ(pdy}rrÇgE׮]C^|BW&&&n۷oX38ᑑRVC$r(JXk}"^Q Z={k/D^Gf(7z޻w况ڊf__ΝvZׇY~|>k޺ŋ_]paǚ5knB8F.C6-o߿3gL0V>}:YnݡӧO8֯_b||vR+266&gϞ=588XJtߍ7=&''\ѸRLXE9{7nqCDjC?W\ ?mٲj9 /pB%\%MϽyx^{m64?`Z/[-6^,7-ы. ,dLUYY^brCuq#zF-Ӳ0_6Z2:'eK=<ܒ%^YRe71 WIENDB`videocut-0.2.0.orig/img/export.png0000644000175000017500000000533010717116733016530 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME .. XIDATh}l?}+^:'N^*[T@T#DD$ !8˘23|C:؆Q-2B)m@oo?ys_z^%;<|/{~<-%D/YIbf<_it٠reYW !9rd-d̟?p4-, ]|躎EJ mx<4MömH)md2I2L{ ۶m[+x[ɄBHeE깍]=ǎ}s_|*M4TB`GJ"xmK iZJ۶ihhСCg)%W]u{p3t-Z;|t栐@wIUVT2gQ+ +׋MyDu˲8r6mJ!`ʔ)tww#݉{Xq7j+㯾O,_^L(`7?jnOux<#׋)/u ┇ ~@ gXM֯_Oii)֐*F ݲ@.S1۶,+04eYhRmzNAo?CGD<ьׯ_gj MӲ !9)O(pj!D!8c6>b՝1Er{ =&'xcP rMRUR(N^RޱmM<>ϝ+9pXASס|0* W9;]@)'Th)sƿ;8 Z>nk+P)zD+HL71ɏ,`C崏̂~~ iP4ʹT)ejS,xB4's08|"Ana,[E(sz@ѥV}>_;eY;[o˲, 4yXR$ ṇW aj@fTd(:-uXa`YV,b̘1L&1  ko4=ņt%4}z T*RRWWG<'b].*/$h'z~? ^`;̫ELX,F<poooϐr/`H7gt( $Η>JEݼf">K/p>\jm Jh8Z`4~o606ҚS4TU#a`&}}iZ̲9i:ee+,;am۔g*8Pp[ 4ܶm:f QsFYP%1A=hyrW2*R2SfX˩;^  p#eh¬J N%li|9<"Vx!e?A>x1-yRgN.@΃>g-(r =R;%s&g.aRl{0؃ O[<౲%R2Wu'+;c1p}/v3}.\%s,䖵3zZn@]P996B%sg\鼩snݛuh>R WFiS&.ʨAiٽ;klajyy9 HJ%&eVǔE'qSKF3 }m̖k\$-_ǐ=s6]53G Bи(b$40<\F̘Mߖry/e>l9m466u6h|M\[5䮯*_|PYȏǍaW&Js6q̀J%+D:::ᇗUdx}[ǍI&ۚuʶ铅Yr%B6mwK-[P__ ɇ~2M%D&!DܜWSm_WjtŭP<O[+-0)+>lذK~l!DHJ*kB RJh?Do)jK/IMӔ&B:P:i^.]_=Ы- A)գ`,VOŷW[Wg>Y?.T@IENDB`videocut-0.2.0.orig/img/exit.png0000644000175000017500000001106510717116711016156 0ustar troorltroorlPNG  IHDR00WsRGBbKGD pHYs B(xtIME  m_IDATh޽Y[lu3;;;{u(q\CI6-;G]Ӧa8/* '5র6$`lGSKҔ% ŋHH}wv}(.%nfYrss~ C&''X.4Muղ,ζ q%uY _+ߥN$gt]\[[Ԅp8 P(`}}+++H$9?bpz֭ߵ{a`Y\.$I 8, Eyy,//cll +++p_|>NMMioz{{]ϦRȻvq, @namPer(QAQ,˂iuKKK8<&[[[aaa7:7nL0 XE80T*, $AeE<@Q(mn,(yJ%\v -e_lll''v֭[www`&  8]AQ8"`].^/$IiPAe躎T* HRuڵk?qʷ>/ap`0|>e۶0 A,zE yŶm(bxP(P, (=T*}9688< eQ.Ԅ;w"y<0PT*(ε, T*A44 KbHhm(AHX,7i裏>hǃ|>׋L&b] DH$ގi6={ d2zi|?[^X,>$2B2 <nBl&/wHJg\FZ%VuصkA*eY`yR,jX T*A$d'o \. (|@$o B>L,JA4677$I\.cuu8t( n7*X %PUux.q뮻iibuuR G6,fx7(,H$˲0~:TU ˲>Q*L$8躎Er"0 8iaJEvzUw~WUN]׉uMӬ{~;iiw;@ H9DQ4xײ?`Fm ~0:; e4MR0 M`6X#k3Nus:Yga;BB|mNhiF,TR4avh΂( x't0˲hoo'=\.G–( *Yw:!P*P.2MEQkjJ$Ics1PZ%`A c``Nya0== ۶I˺3 … ˲NӲE0==}[=xP.< DQD.!r8+ HBrzPUmCEDQ|۞4 ,Bex72=d@QQV122Rg}QVInŭVyg҂Md2~ Ȳ#GܦV3CMe I>x~0 z $!'"龒$TUSܹsut$U,O?]aLMM!vCTUeݿDavXYYAKK 8 Ɨ%!'? N:\.fhFx~P@ss3}Y2k:sn;SpڵU/.--y _'\gΜA{{;$I2:::P,111F$I<ؿ?^xR<$I:(x 8qNyf155EJmss3$dY~ MSSL&{<~ߣ\.uaq9K.m@4D"(d2d2dYT*H$|>EQsN<~pm< >C8aXYYʊvGnhhqp <_7$ ǏիW00??L ,r |>by|߽?)JBzzzpfggyGLOOMMM[n=܃`09$ ,--NvQ۷4a&*@3 YڊÇG?IPgHw466X\\܈FonnV>r*Q,W*/رͱ$2 666p!)i"G<(B0D0D,COOoÇ lů|+,ػw/$I˗ _^^龾=9sF6 ~!Ν;v;v /ˆa0 I艹*鈓ǁ8eLMMazzsss(p6>ep/2^|EwC2Į]044V`tturaaŸCC544byʙ8{,XŎ;Ѐ{Bu*nݺ{H&HX__Gss3]ʾ?p׾5JA͛7mn|>{nDQA5?W^BD"g>v럴Ox|^\r'Nz=!NTBi!F84rT4 1NC)ȇ'\%\.d !(u}s6֨$EiXR0/A\3k)H,1E!Ї^zB0;;;4bS8}CFTX .|8]MC<UblnssZ biᆵ ˲!jM#Ru=!Fn@E2hߛGft:'Ipih@[ms4Mý{pMkg2ܺu W^ ͛7hZ8q‚n-$`J%Vt]۷oObrR \.\:Zu 0[Z̀뺎U\|9 iz}BҥKX]]!Ǐcii RJjUq!J%LQa6ceY~)jQP:п²:Gömu4>LJt*z RJx!<qɞ2ZV! L*8W躎GB1I!NRiXV#{kH)y <2tN߭h>\(=mېRbkbh4,NHƍ?lH /mLBP(A)ctA "δ )blW﫰ǑNqdzP@ 18W}$*|̙`!N#2]ױ è!^fJPRӘX[[)%4<xFĀTp<+p))Z{|ƆJ%M!8 Я+Տv)JZ%J\sƺp0;;'JRNJ9uE17Gޮr?A#|$ҵ?x$TJi~pjA \AƤ4M {pͲ,7 DsS`<@Src9loi5 izg0kIENDB`videocut-0.2.0.orig/img/qt_logo.png0000644000175000017500000000201510747072070016646 0ustar troorltroorlPNG  IHDR00`nsRGB pHYsaa?itIME Zn&IDATXXkA%bQ?M*v*Eď.K@PA yKb$ XXB R{v,rwnvo_>ȃL5w;7;;D4 !Q ]FR+Ҷ5@b@tzq)ZnsB[m/oDO^&n0>ce2ge7_ ̔;RqY@CHh$j[ _8+:&j\PF`3CDn(i<9+N56ӫד8fxsy#^2gZ ٽf;'oQ&SO3K32K(=^"qf;{3&ʾi5*]`ק"dvh <|͓DSގ[3獔cD9N}R)LdEB9_bOVoVĪ T\ Y^Te&ҚK78#]X5.%BT*Ed,l}YUKYTQ/ |c,} I x8/o!bE$Mn5S:EĤۍ{Nב^ P_MVVƻL !/3%#mwPod8Xƭ}޾}+OQBe+ܜP]E~7LӗzɌVݪIENDB`videocut-0.2.0.orig/src/0000755000175000017500000000000010747077163014521 5ustar troorltroorlvideocut-0.2.0.orig/src/const.h0000755000175000017500000000247710747074060016026 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _CONST_H_ #define _CONST_H_ #define APPLICATION_NAME "VideoCut" #define VERSION "0.2.0" #define STATUS "release" #define CANT_FIND_VIDEO_CODEC 1 #define CANT_OPEN_FILE 2 #define ALIGN_LEFT_TOP 0 #define ALIGN_RIGHT_TOP 1 #define ALIGN_LEFT_BOTTOM 2 #define ALIGN_RIGHT_BOTTOM 3 enum p_style{ shadow = 0, seample = 1 }; #endif videocut-0.2.0.orig/src/TProgress.cpp0000644000175000017500000000437510747075001017153 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TProgress.h" TProgress::TProgress() { mainProgress = new QProgressBar(this); slaveProgress = new QProgressBar(this); mainLabel = new QLabel(tr("Main progress")); slaveLabel = new QLabel(tr("File in progress: ")); slaveLabelText = new QLabel(this); // layers QHBoxLayout *labels_layout = new QHBoxLayout; labels_layout->addWidget(slaveLabel); labels_layout->addWidget(slaveLabelText); QVBoxLayout *main_v_layout = new QVBoxLayout; main_v_layout->addWidget(mainLabel); main_v_layout->addWidget(mainProgress); main_v_layout->addLayout(labels_layout); main_v_layout->addWidget(slaveProgress); QHBoxLayout *main_layout = new QHBoxLayout; main_layout->addLayout(main_v_layout); this->setLayout(main_layout); this->setModal(true); } void TProgress::setRangeTop(int start, int end) { this->mainProgress->setRange(start, end); } void TProgress::setRangeBottom(int start, int end) { this->slaveProgress->setRange(start, end); } void TProgress::setLabel(QString label) { this->setWindowTitle(label); } void TProgress::setValueTop(int value) { mainProgress->setValue(value); } void TProgress::setValueBottom(int value) { slaveProgress->setValue(value); } void TProgress::setCurrentFile(QString current_file) { this->slaveLabelText->setText(current_file); } videocut-0.2.0.orig/src/TFrameStruct.h0000755000175000017500000000247610747075067017272 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TFRAMESTRUCT_H_ #define _TFRAMESTRUCT_H_ #include #include #include /* Structure of frame - image + timestmp */ class TFrameStruct : public QObject { public: TFrameStruct(); void addItem(QString); void removeItem(int); QPixmap getItem(int); private: QList paths; }; #endif videocut-0.2.0.orig/src/TViewFrame/0000755000175000017500000000000010747077247016535 5ustar troorltroorlvideocut-0.2.0.orig/src/TViewFrame/TViewFrame.cpp0000755000175000017500000000414510747076545021261 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TViewFrame.h" TViewFrame::TViewFrame(QWidget* parent, Qt::WindowFlags) : QGraphicsView(parent) { image = new TViewItem(); scene = new QGraphicsScene(this); scene->addItem(this->image); QPixmap *tempPixmap = new QPixmap(":img/background.png", "PNG"); QBrush *tempBrush = new QBrush(QColor(55, 55, 55, 255)); tempBrush->setTexture(*tempPixmap); scene->setBackgroundBrush(*tempBrush); this->setCacheMode(QGraphicsView::CacheBackground); this->setVisible(true); this->tempSceneBorn(); this->setScene(tempScene); this->setDragMode(QGraphicsView::ScrollHandDrag); } void TViewFrame::tempSceneBorn() { tempScene = new QGraphicsScene(this); QRadialGradient gradient(QPoint(70, 70), 170, QPoint(70, 70)); gradient.setColorAt(0.05, Qt::white); gradient.setColorAt(1, Qt::black); tempScene->setBackgroundBrush(QBrush(gradient)); QGraphicsPixmapItem *logoItem = new QGraphicsPixmapItem(QPixmap(":/img/logo.svg")); tempScene->addItem(logoItem); } void TViewFrame::setWorkScene() { this->setScene(scene); } void TViewFrame::setImage(QImage &image) { this->image->setImage(image); this->image->setScale(1); } videocut-0.2.0.orig/src/TViewFrame/TViewItem.cpp0000755000175000017500000000372510747076561021126 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TViewItem.h" TViewItem::TViewItem() { w_s = 0; h_s = 0; } void TViewItem::scale(qreal scale) { this->h_s = (int)(this->p->height() * scale); this->w_s = this->p->width() * h_s / this->p->height(); boundRect = QRectF(0 , 0, w_s, h_s); // result rect realPixRect = QRectF(0, 0, p->width(), p->height()); this->prepareGeometryChange(); } QRectF TViewItem::boundingRect() const { return boundRect; } void TViewItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { painter->setRenderHint(QPainter::Antialiasing, true); painter->drawImage(boundRect, *p, realPixRect); } void TViewItem::setImage(QImage &image) { this->p = ℑ realPixRect = QRectF(0, 0, p->width(), p->height()); this->prepareGeometryChange(); } void TViewItem::setScale(qreal scale) { this->h_s = (int)(this->p->height() * scale); this->w_s = this->p->width() * h_s / this->p->height(); boundRect = QRectF(0 , 0, w_s, h_s); this->prepareGeometryChange(); } videocut-0.2.0.orig/src/TViewFrame/TViewFrame.h0000755000175000017500000000307410747076555020727 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TVIEWFRAME_H_ #define _TVIEWFRAME_H_ #include #include #include #include #include #include #include #include #include #include "TViewItem.h" class TViewFrame : public QGraphicsView { Q_OBJECT public: TViewFrame(QWidget *parent = 0, Qt::WindowFlags f = 0); void tempSceneBorn(); void setWorkScene(); void setImage(QImage &); private slots: protected: private: QGraphicsScene *scene; QGraphicsScene *tempScene; TViewItem *image; }; #endif videocut-0.2.0.orig/src/TViewFrame/TViewItem.h0000755000175000017500000000301210747076563020562 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TVIEWITEM_H_ #define _TVIEWITEM_H_ #include "../const.h" #include #include #include #include class TViewItem : public QGraphicsItem { public: TViewItem(); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QRectF boundingRect() const; void scale(qreal); void setImage(QImage &); void setScale(qreal); private: QImage *p; int w_s, h_s; qreal scalePix; QRect bound; QRectF boundRect, realPixRect; }; #endif videocut-0.2.0.orig/src/main.cpp0000755000175000017500000000253710747075036016160 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include #include "TMainWindow.h" int main(int argc, char *argv[]) { QApplication app(argc, argv); // loading translation of current locale QTranslator qtTranslator; qtTranslator.load(":/i18n/videocut." + QLocale::system().name()); app.installTranslator(&qtTranslator); TMainWindow mainWindowApp; // creating main window return app.exec(); } videocut-0.2.0.orig/src/TAboutWindow.h0000644000175000017500000000261710747075052017261 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TABOUTWINDOW_H_ #define _TABOUTWINDOW_H_ #include #include "const.h" /* Class of window with main information about programm */ class TAboutWindow : public QDialog { Q_OBJECT public: TAboutWindow(QWidget *parent = 0); private: QString loadText(QString); QTabWidget *tabWidget; QWidget *tab1; QWidget *tab2; QWidget *tab3; QWidget *tab4; QPushButton *okButton; }; #endif videocut-0.2.0.orig/src/TProgress.h0000644000175000017500000000267110747075006016622 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TPROGRESS_H_ #define _TPROGRESS_H_ #include class TProgress : public QDialog { Q_OBJECT public: TProgress(); void setRangeTop(int, int); void setRangeBottom(int, int); void setLabel(QString); void setValueTop(int); void setValueBottom(int); void setCurrentFile(QString); private: QProgressBar *mainProgress; QProgressBar *slaveProgress; QLabel *mainLabel; QLabel *slaveLabel; QLabel *slaveLabelText; }; #endifvideocut-0.2.0.orig/src/TListPanel/0000755000175000017500000000000010747077211016532 5ustar troorltroorlvideocut-0.2.0.orig/src/TListPanel/TListPanel.cpp0000755000175000017500000000762310747075411021270 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TListPanel.h" TListPanel::TListPanel(QWidget* parent, Qt::WindowFlags) : QGraphicsView(parent) { QPixmap *brushPixmap = new QPixmap("TListPanel/brush.png", "PNG"); QBrush *backgroundBrush = new QBrush(); backgroundBrush->setTexture(*brushPixmap); this->setBackgroundBrush(*backgroundBrush); this->setCacheMode(QGraphicsView::CacheBackground); this->setAlignment(Qt::AlignLeft | Qt::AlignTop); this->setVisible(true); scene = new QGraphicsScene(this); this->setScene(scene); //infoText = new QGraphicsTextItem(""); this->currentIndex = 0; countItems = 0; x = 0; y = 0; h = 60; otst = 10; inc = 0; listItems = new QList(); frameItems = new QList(); } void TListPanel::setActions(QAction &delAct, QAction &saveAct) { this->delAct = &delAct; this->saveAct = &saveAct; } void TListPanel::setList(QList *list) { this->listItems = list; } void TListPanel::createItems() { for(int i = 0; i < listItems->count(); i++) { TFrameItem *item = new TFrameItem(listItems->at(i)->img, h, *delAct, *saveAct); *frameItems << item; connect(frameItems->at(i), SIGNAL(onSelectItem(TFrameItem &)), this, SLOT(S_SelectItem(TFrameItem &))); scene->addItem(frameItems->at(i)); } frameItems->at(0)->select(); } void TListPanel::adjustItems() { int inc = 0; for (int i = 0; i < frameItems->count(); i++) { frameItems->at(i)->setPos(inc, 10); inc = inc + (int)(frameItems->at(i)->boundingRect().width() + 6); } scene->setSceneRect(scene->itemsBoundingRect()); scene->advance(); this->setScene(scene); } void TListPanel::deleteItem(int index) { if(frameItems->count() > 0) { scene->removeItem(frameItems->at(index)); frameItems->removeAt(index); adjustItems(); currentIndex = 0; } } int TListPanel::getCurrentIndex() { return currentIndex; } TListPanel::~TListPanel(void) { } void TListPanel::S_SelectItem(TFrameItem ¤tItem) { frameItems->at(currentIndex)->deSelect(); /*QMessageBox msgBox; QPushButton *connectButton = msgBox.addButton(QString::number(currentIndex), QMessageBox::ActionRole); QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort); msgBox.exec();*/ currentIndex = frameItems->indexOf(¤tItem); emit changeItem(currentIndex); } void TListPanel::removeAll() { qDeleteAll(*frameItems); frameItems->clear(); frameItems = NULL; listItems = NULL; frameItems = new QList(); listItems = new QList(); scene = NULL; scene = new QGraphicsScene(this); } void TListPanel::S_SaveItem(TFrameItem ¤tItem) { int currentIndex = frameItems->indexOf(¤tItem); emit onSave(currentIndex); /*QMessageBox msgBox; QPushButton *connectButton = msgBox.addButton(QString::number(5), QMessageBox::ActionRole); QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort); msgBox.exec();*/ } int TListPanel::count() { return countItems; } videocut-0.2.0.orig/src/TListPanel/TListPanel.h0000755000175000017500000000416010747075415020732 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TLISTPANEL_H_ #define _TLISTPANEL_H_ #include #include #include #include #include #include #include "TFrameItem.h" #include "../frameStruct.h" class TListPanel : public QGraphicsView { Q_OBJECT public: TListPanel(QWidget *parent = 0, Qt::WindowFlags f = 0); virtual ~TListPanel(void); void setActions(QAction &, QAction &); void addItem(QPixmap &); void setList(QList *); void createItems(); void adjustItems(); void removeAt(int); void removeAll(); void deleteItem(int index); int count(); int getCurrentIndex(); private slots: void S_SelectItem(TFrameItem &); void S_SaveItem(TFrameItem &); signals: void changeItem(int); void onSave(int); protected: private: QGraphicsScene *scene; QGraphicsTextItem *infoText; QList *frameItems; QList *listItems; int countItems; //count of items int currentIndex; // selected item int x, y; int w, h; int otst; int inc; QRectF sizeItem; QAction *delAct; QAction *saveAct; }; #endif videocut-0.2.0.orig/src/TListPanel/TFrameItem.h0000755000175000017500000000421510747075405020710 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TFRAMEITEM_H_ #define _TFRAMEITEM_H_ #include #include #include #include #include #include #include #include class TFrameItem : public QObject, public QGraphicsItem { Q_OBJECT public: TFrameItem(QImage &p, int h_s, QAction &, QAction &); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QRectF boundingRect() const; void deSelect(); void select(); protected: void hoverMoveEvent(QGraphicsSceneHoverEvent*); void hoverLeaveEvent(QGraphicsSceneHoverEvent*); void mousePressEvent(QGraphicsSceneMouseEvent*); void contextMenuEvent(QGraphicsSceneContextMenuEvent *event); signals: void onSave(TFrameItem &); void onSelectItem(TFrameItem &); private slots: void S_Save(); private: int index; bool isSelect; bool hovered; QImage *p; int w_s, h_s; int widthBorder; int shadowSize; QRectF boundRect; QRectF pixRect, bigRect; QRectF source; QColor colHover, colPress; QAction *menuAct; QMenu *menu; }; #endif videocut-0.2.0.orig/src/TListPanel/TFrameItem.cpp0000755000175000017500000000723010747075312021240 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TFrameItem.h" TFrameItem::TFrameItem(QImage &p, int h_s, QAction &delAct, QAction &saveAct) { this->p = &p; this->h_s = h_s; this->w_s = (int)(h_s * 1.5); widthBorder = 2; shadowSize = 5; boundRect = QRectF(0, 0, w_s, h_s); bigRect = QRectF(shadowSize, shadowSize, w_s - shadowSize*2, h_s - shadowSize*2); pixRect = QRectF(bigRect.x() + widthBorder, bigRect.y() + widthBorder, bigRect.width() - widthBorder*2, bigRect.height() - widthBorder*2); source = QRectF(0, 0, this->p->width(), this->p->height()); isSelect = false; this->setAcceptsHoverEvents(true); hovered = false; // colors fo pressed and hovered layer colPress = QColor(0, 0, 250, 100); colHover = QColor(250, 250, 250, 100); // create context menu menu = new QMenu(); menu->addAction(&saveAct); menu->addAction(&delAct); } QRectF TFrameItem::boundingRect() const { return boundRect; } void TFrameItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { if (isObscured()) return; painter->setRenderHint(QPainter::Antialiasing, true); QPen penTmp(QColor(10, 10, 10, 0), -1); penTmp.setCapStyle(Qt::RoundCap); painter->setPen(penTmp); for(int i = shadowSize; i >= 0; i--) { painter->setBrush(QBrush(QColor(50, 50, 50, 10 + i * 15))); painter->drawRoundRect(i, i, (int)(boundRect.width() - i*2), (int)(boundRect.height() - i*2), 15, 15); } QColor tempColor = QColor(250, 250, 250, 250); QPen pen(tempColor, 0, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); painter->setPen(pen); painter->setBrush(tempColor); painter->drawRoundRect(bigRect, 0, 0); //#if QT_VERSION >= 0x040300 painter->drawImage(pixRect, (*p).scaledToWidth(pixRect.width(), Qt::SmoothTransformation)); //#else // painter->drawImage(pixRect, *p, source); //#endif // for hover if(hovered) { painter->setBrush(colHover); painter->drawRect(bigRect); } // for press event if(isSelect) { painter->setBrush(QBrush(colPress)); painter->drawRect(bigRect); } } void TFrameItem::hoverMoveEvent(QGraphicsSceneHoverEvent *) { hovered = true; this->update(); } void TFrameItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *) { hovered = false; this->update(); } void TFrameItem::select() { if(!isSelect) { this->update(); emit onSelectItem(*this); // sending link to this item } isSelect = true; } void TFrameItem::mousePressEvent(QGraphicsSceneMouseEvent *) { this->select(); } void TFrameItem::deSelect() { isSelect = false; this->update(); } void TFrameItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *) { menu->exec(QCursor::pos()); } void TFrameItem::S_Save() { emit onSave(*this); } videocut-0.2.0.orig/src/TMainWindow.h0000755000175000017500000000732310747075024017074 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "backends/TXine.h" //#include "backends/TFfmpeg.h" #include "TOptions/TConfigdialog.h" #include "TOptions/TPages.h" #include "TOptions/TUserSettings.h" #include "TPreviewPanel/TPreviewPanel.h" #include "TListPanel/TListPanel.h" #include "TViewFrame/TViewFrame.h" #include "TFrameStruct.h" #include "const.h" #include "TOptions/TColorChoser.h" #include "TAboutWindow.h" #include "TProgress.h" //#include "TVideo/TVideo.h" /* Main window class */ class TMainWindow : public QMainWindow { Q_OBJECT public: TMainWindow(QWidget *parent = 0); ~TMainWindow(); void GUI(); void menuInit(); void perfectFile(bool many); void deleteAllItems(); void makePreview(bool many); void drawPreview(); QString timeToString(int currPos); void readSettings(); void openMain(); void openManyMain(); private slots: void S_showCurrImage(int); void S_SaveCurrImage(); void S_SaveAllImages(); void S_Exit(); void S_DelFrame(); void S_OpenFile(); void S_OpenFiles(); void S_SaveScene(); void S_PrintScene(); void S_Options(); void S_ApplyChanges(); void S_ChangeStyle(int); void S_ChangeTimePos(int); void S_ChangeSize(int); void S_ChangeOffset(int); void S_ChangeSpace(int); void S_ChangeColor(QColor &); //void S_EnablePlayer(); void S_ChangeSizeToolbar(bool); void S_AboutQt(); void S_About(); private: QTranslator trans; QString mainTitle; QList *frames; // GUI TAboutWindow *aboutWindow; QDockWidget *dock; //TVideo *player; TPreviewPanel *previewPanel1; // finaly previews TListPanel *listPanel1; // list of previews in the bottom of the window QListWidget *listView; TViewFrame *viewFrame1; // view current frame QToolBar *toolbar; QWidget *toolBox; QComboBox *styleBox; QComboBox *timePosBox; QSpinBox *sizeBox; QSpinBox *offsetBox; QSpinBox *spaceBox; TColorChoser *colorBox; QTabWidget *tabWidget; QWidget *tab1; QWidget *tab2; QMenuBar *menubar; QMenu *menuFile; QMenu *menuFrame; QMenu *menuOptions; QMenu *menuToolbar; QMenu *menuHelp; QStatusBar *statusbar; QString tempPath; QString path; QStringList paths; QFileInfo fileInfo; QAction *openAct, *openManyAct, *closeAct; QAction *saveSceneAct; QAction *saveMultiAct; QAction *printAct; QAction *delFrameAct; QAction *saveFrameAct; QAction *optionsAct; QAction *aboutAct; QAction *aboutQtAct; QActionGroup *sizeGroup; QAction *size16; QAction *size24; QAction *size32; QAction *size48; TConfigDialog *optionsDialog; TUserSettings *settings; TProgress *prog; bool isOpen; // Xine backend TXine *backend; //TFfmpeg *backend; // file properties int length; // length of file QString videocodec, audiocodec; }; videocut-0.2.0.orig/src/TMainWindow.cpp0000755000175000017500000006502710747074772017445 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TMainWindow.h" TMainWindow::TMainWindow(QWidget *parent) : QMainWindow(parent) { isOpen = false; mainTitle = APPLICATION_NAME "-" + QString(VERSION); if(STATUS != "release") { mainTitle += "-" + QString(STATUS); } settings = new TUserSettings(); this->readSettings(); GUI(); this->menuInit(); frames = new QList; connect(listPanel1, SIGNAL(changeItem(int)), this, SLOT(S_showCurrImage(int))); //showing main window this->show(); this->setGeometry(settings->getGeometry()); if(QFile::exists(qApp->argv()[1])) { this->path = qApp->argv()[1]; this->openMain(); } } TMainWindow::~TMainWindow() { settings->setGeometry(this->geometry()); settings->setShowPanel(!dock->isHidden()); if(path != "") settings->setPath(this->fileInfo.path()); settings->writeSettings(); qApp->processEvents(); } void TMainWindow::GUI() { QPalette palette; QColor windowColor = this->palette().color(QPalette::Window); palette.setColor(QPalette::Dark, windowColor); palette.setColor(QPalette::Light, windowColor); palette.setColor(QPalette::Shadow, windowColor); palette.setColor(QPalette::Midlight, windowColor); palette.setColor(QPalette::Mid, windowColor); menubar = new QMenuBar(); //menubar->setGeometry(QRect(0, 0, 640, 28)); menuFile = new QMenu(menubar); menuFrame = new QMenu(menubar); menuOptions = new QMenu(menubar); menuToolbar = new QMenu(menuOptions); menuHelp = new QMenu(menubar); menuFile->setTitle(QApplication::translate("MainDialog", "File", 0, QApplication::UnicodeUTF8)); menuFrame->setTitle(QApplication::translate("MainDialog", "Frame", 0, QApplication::UnicodeUTF8)); menuOptions->setTitle(QApplication::translate("MainDialog", "Options", 0, QApplication::UnicodeUTF8)); menuToolbar->setTitle(QApplication::translate("MainDialog", "Toolbar", 0, QApplication::UnicodeUTF8)); menuHelp->setTitle(QApplication::translate("MainDialog", "Help", 0, QApplication::UnicodeUTF8)); menubar->addAction(menuFile->menuAction()); menubar->addAction(menuFrame->menuAction()); menubar->addAction(menuOptions->menuAction()); menubar->addAction(menuHelp->menuAction()); this->setMenuBar(menubar); statusbar = new QStatusBar(); this->setStatusBar(statusbar); this->setWindowTitle(mainTitle); QWidget *mainWidget = new QWidget(); this->setWindowIcon(QIcon(":/img/logo.svg")); tabWidget = new QTabWidget(mainWidget); tabWidget->setMinimumHeight(350); tabWidget->setMinimumWidth(550); tabWidget->setTabPosition(QTabWidget::West); tab1 = new QWidget(); tab1->setObjectName(QString::fromUtf8("tab1")); tab2 = new QWidget(); tab2->setObjectName(QString::fromUtf8("tab2")); tabWidget->addTab(tab1, tr("Current frame")); tabWidget->addTab(tab2, tr("Preview")); tabWidget->setCurrentIndex(1); viewFrame1 = new TViewFrame(tab1); QHBoxLayout *labelImageLayout = new QHBoxLayout; labelImageLayout->setMargin(0); labelImageLayout->addWidget(viewFrame1); QVBoxLayout *tab1Layout = new QVBoxLayout; tab1Layout->setMargin(0); tab1Layout->addLayout(labelImageLayout); tab1->setLayout(tab1Layout); previewPanel1 = new TPreviewPanel(tab2); previewPanel1->setPalette(palette); QHBoxLayout *previewLayout = new QHBoxLayout; previewLayout->setMargin(0); previewLayout->addWidget(previewPanel1); styleBox = new QComboBox(); styleBox->addItem("Shadowed"); styleBox->addItem("Simple"); styleBox->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); QLabel *styleLabel = new QLabel(); styleLabel->setText(tr("Style")); QHBoxLayout *styleLayout = new QHBoxLayout; styleLayout->addWidget(styleLabel); styleLayout->addWidget(styleBox); connect(styleBox, SIGNAL(activated(int)), this, SLOT(S_ChangeStyle(int))); timePosBox = new QComboBox(); timePosBox->addItem("Left & Top"); timePosBox->addItem("Right & Top"); timePosBox->addItem("Left & Bottom"); timePosBox->addItem("Right & Bottom"); timePosBox->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); QLabel *timePosLabel = new QLabel(); timePosLabel->setText(tr("Timestamps")); QHBoxLayout *timePosLayout = new QHBoxLayout; timePosLayout->addWidget(timePosLabel); timePosLayout->addWidget(timePosBox); connect(timePosBox, SIGNAL(activated(int)), this, SLOT(S_ChangeTimePos(int))); sizeBox = new QSpinBox(); sizeBox->setMinimum(10); sizeBox->setMaximum(100); sizeBox->setValue(0); QLabel *sizeLabel = new QLabel(); sizeLabel->setText(tr("Size (%)")); QHBoxLayout *sizeLayout = new QHBoxLayout; sizeLayout->addWidget(sizeLabel); sizeLayout->addWidget(sizeBox); connect(sizeBox, SIGNAL(valueChanged(int)), this, SLOT(S_ChangeSize(int))); offsetBox = new QSpinBox(); offsetBox->setMinimum(0); offsetBox->setValue(0); QLabel *offsetLabel = new QLabel(); offsetLabel->setText(tr("Offset")); QHBoxLayout *offsetLayout = new QHBoxLayout; offsetLayout->addWidget(offsetLabel); offsetLayout->addWidget(offsetBox); connect(offsetBox, SIGNAL(valueChanged(int)), this, SLOT(S_ChangeOffset(int))); spaceBox = new QSpinBox(); spaceBox->setMinimum(0); spaceBox->setValue(0); QLabel *spaceLabel = new QLabel(); spaceLabel->setText(tr("Indentation")); QHBoxLayout *spaceLayout = new QHBoxLayout; spaceLayout->addWidget(spaceLabel); spaceLayout->addWidget(spaceBox); connect(spaceBox, SIGNAL(valueChanged(int)), this, SLOT(S_ChangeSpace(int))); colorBox = new TColorChoser(); colorBox->setText(tr("Background")); colorBox->setColor(settings->getColorBackground()); connect(colorBox, SIGNAL(colorChanged(QColor &)), this, SLOT(S_ChangeColor(QColor &))); //player = new TVideo(); //connect(player, SIGNAL(ready()), this, SLOT(S_EnablePlayer())); QVBoxLayout *verDockLayout = new QVBoxLayout; verDockLayout->setAlignment(Qt::AlignTop); verDockLayout->addLayout(styleLayout); verDockLayout->addLayout(timePosLayout); verDockLayout->addLayout(sizeLayout); verDockLayout->addLayout(offsetLayout); verDockLayout->addLayout(spaceLayout); verDockLayout->addLayout(colorBox->getLayout()); verDockLayout->addStretch(1); dock = new QDockWidget(); dock->setWindowTitle(tr("Options panel")); dock->toggleViewAction()->setIcon(QIcon(":/img/viewpanel.png")); dock->toggleViewAction()->setShortcut(tr("Ctrl+.")); //------- from settings if(!settings->getShowPanel()) { dock->hide(); } //-------------------- dock->setAllowedAreas(Qt::RightDockWidgetArea); this->addDockWidget(Qt::RightDockWidgetArea, dock); toolBox = new QWidget(dock); toolBox->setEnabled(false); toolBox->setLayout(verDockLayout); dock->setWidget(toolBox); QVBoxLayout *tab2Layout = new QVBoxLayout; tab2Layout->setMargin(0); tab2Layout->setSpacing(0); tab2Layout->addLayout(previewLayout); tab2->setLayout(tab2Layout); listPanel1 = new TListPanel(mainWidget); int list_panel_height = listPanel1->horizontalScrollBar()->height() + 60; listPanel1->setMinimumHeight(list_panel_height); listPanel1->setMaximumHeight(list_panel_height); // Layouts QHBoxLayout *tabLayout = new QHBoxLayout; tabLayout->addWidget(tabWidget); QHBoxLayout *listLayout = new QHBoxLayout; listLayout->addWidget(listPanel1); QVBoxLayout *vertLayout = new QVBoxLayout; vertLayout->setMargin(0); vertLayout->setSpacing(0); vertLayout->addLayout(tabLayout); vertLayout->addLayout(listLayout); mainWidget->setLayout(vertLayout); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(mainWidget); this->setCentralWidget(mainWidget); } void TMainWindow::menuInit() { openAct = new QAction(tr("&Open..."), this); openAct->setShortcut(tr("Ctrl+O")); openAct->setIcon(QIcon(":/img/fileopen.png")); openAct->setStatusTip(tr("Open video file")); openManyAct = new QAction(tr("&Open few files..."), this); openManyAct->setIcon(QIcon(":/img/filesopen.png")); openManyAct->setStatusTip(tr("Open video files")); closeAct = new QAction(tr("&Close"), this); closeAct->setShortcut(tr("Ctrl+Q")); closeAct->setIcon(QIcon(":/img/exit.png")); closeAct->setStatusTip(tr("Close program")); saveSceneAct = new QAction(tr("&Export..."), this); saveSceneAct->setShortcut(tr("Ctrl+E")); saveSceneAct->setIcon(QIcon(":/img/export.png")); saveSceneAct->setStatusTip(tr("Export composition to the graphics file")); saveSceneAct->setEnabled(false); previewPanel1->addAction(saveSceneAct); saveMultiAct = new QAction(tr("&Save like images..."), this); saveMultiAct->setShortcut(tr("Ctrl+M")); saveMultiAct->setIcon(QIcon(":/img/save_multi.png")); saveMultiAct->setStatusTip(tr("Save frames like many images")); saveMultiAct->setEnabled(false); printAct = new QAction(tr("&Print..."), this); printAct->setIcon(QIcon(":/img/print.png")); printAct->setStatusTip(tr("Print scene")); printAct->setEnabled(false); delFrameAct = new QAction(tr("Delete frame"), this); delFrameAct->setShortcut(tr("Ctrl+D")); delFrameAct->setIcon(QIcon(":/img/delete_frame.png")); delFrameAct->setStatusTip(tr("Delete current frame")); delFrameAct->setEnabled(false); saveFrameAct = new QAction(tr("Save frame"), this); saveFrameAct->setShortcut(tr("Ctrl+S")); saveFrameAct->setIcon(QIcon(":/img/save_frame.png")); saveFrameAct->setStatusTip(tr("Save current frame")); saveFrameAct->setEnabled(false); listPanel1->setActions(*delFrameAct, *saveFrameAct); optionsAct = new QAction(tr("Options"), this); optionsAct->setShortcut(tr("Ctrl+P")); optionsAct->setIcon(QIcon(":/img/options.png")); optionsAct->setStatusTip(tr("Go to options")); sizeGroup = new QActionGroup(this); sizeGroup->setExclusive(true); size16 = new QAction(tr("16"), this); size16->setCheckable(true); size24 = new QAction(tr("24"), this); size24->setCheckable(true); size32 = new QAction(tr("32"), this); size32->setCheckable(true); size48 = new QAction(tr("48"), this); size48->setCheckable(true); sizeGroup->addAction(size16); sizeGroup->addAction(size24); sizeGroup->addAction(size32); sizeGroup->addAction(size48); switch(settings->getToolbarSize()) { case(16): { size16->setChecked(true); break; } case(24): { size24->setChecked(true); break; } case(32): { size32->setChecked(true); break; } case(48): { size48->setChecked(true); break; } } aboutAct = new QAction(tr("About..."), this); aboutAct->setShortcut(tr("F1")); aboutAct->setIcon(QIcon(":/img/about.png")); aboutAct->setStatusTip(tr("About program")); aboutQtAct = new QAction(tr("About Qt..."), this); aboutQtAct->setIcon(QIcon(":/img/qt_logo.png")); aboutQtAct->setStatusTip(tr("About Qt framework")); menuFile->addAction(openAct); menuFile->addAction(openManyAct); menuFile->addAction(saveSceneAct); menuFile->addAction(saveMultiAct); menuFile->addAction(printAct); menuFile->addSeparator(); menuFile->addAction(closeAct); menuFrame->addAction(delFrameAct); menuFrame->addAction(saveFrameAct); menuToolbar->addAction(size16); menuToolbar->addAction(size24); menuToolbar->addAction(size32); menuToolbar->addAction(size48); menuOptions->addAction(optionsAct); menuOptions->addAction(dock->toggleViewAction()); menuOptions->addMenu(menuToolbar); menuHelp->addAction(aboutAct); menuHelp->addAction(aboutQtAct); connect(openAct, SIGNAL(triggered()), this, SLOT(S_OpenFile())); connect(openManyAct, SIGNAL(triggered()), this, SLOT(S_OpenFiles())); connect(saveSceneAct, SIGNAL(triggered()), this, SLOT(S_SaveScene())); connect(delFrameAct, SIGNAL(triggered()), this, SLOT(S_DelFrame())); connect(saveFrameAct, SIGNAL(triggered()), this, SLOT(S_SaveCurrImage())); connect(saveMultiAct, SIGNAL(triggered()), this, SLOT(S_SaveAllImages())); connect(printAct, SIGNAL(triggered()), this, SLOT(S_PrintScene())); connect(closeAct, SIGNAL(triggered()), this, SLOT(S_Exit())); connect(optionsAct, SIGNAL(triggered()), this, SLOT(S_Options())); connect(aboutAct, SIGNAL(triggered()), this, SLOT(S_About())); connect(aboutQtAct, SIGNAL(triggered()), this, SLOT(S_AboutQt())); connect(size16, SIGNAL(toggled(bool)), this, SLOT(S_ChangeSizeToolbar(bool))); connect(size24, SIGNAL(toggled(bool)), this, SLOT(S_ChangeSizeToolbar(bool))); connect(size32, SIGNAL(toggled(bool)), this, SLOT(S_ChangeSizeToolbar(bool))); connect(size48, SIGNAL(toggled(bool)), this, SLOT(S_ChangeSizeToolbar(bool))); // creating toolbar toolbar = new QToolBar(tr("Main toolbar"), this); int toolbarSize = settings->getToolbarSize(); toolbar->setIconSize(QSize(toolbarSize, toolbarSize)); toolbar->addAction(openAct); toolbar->addAction(openManyAct); toolbar->addAction(saveSceneAct); toolbar->addAction(saveMultiAct); toolbar->addAction(printAct); toolbar->addSeparator(); toolbar->addAction(delFrameAct); toolbar->addAction(saveFrameAct); toolbar->addSeparator(); toolbar->addAction(optionsAct); toolbar->addAction(dock->toggleViewAction()); toolbar->addSeparator(); toolbar->addAction(aboutAct); this->addToolBar(toolbar); } void TMainWindow:: deleteAllItems() { previewPanel1->removeAll(); listPanel1->removeAll(); // deleting buffers for(int i = 0; i < frames->count(); i++) { delete []frames->at(i)->img.bits(); } //qDeleteAll(*frames); frames->clear(); delete frames; frames = new QList; videocodec = ""; audiocodec = ""; /*if(player->isOpen()) { player->closeBackend(); player->check(false); }*/ } void TMainWindow::S_OpenFile() { this->path = QFileDialog::getOpenFileName(this, tr("Open File"), settings->getPath(), tr("Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*)")); if(path != "") { if(!QFile::exists(this->path)) { QMessageBox::information(0, APPLICATION_NAME, tr("invalid path!")); return; } else this->openMain(); } } void TMainWindow::S_OpenFiles() // for few files { this->paths = QFileDialog::getOpenFileNames(this, tr("Open File"), settings->getPath(), tr("Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*)")); if(!this->paths.empty()) { this->openManyMain(); } } void TMainWindow::openMain() { this->setWindowTitle(mainTitle + " - " + this->path); this->deleteAllItems(); fileInfo = QFileInfo(this->path); settings->setPath(fileInfo.path()); settings->writeSettings(); //------------TEST!!!--------------------- /*backend1 = new TFfmpeg(); backend1->init(path.toLocal8Bit()); qWarning() << "LENGTH (ffmpeg): " <getLength(); backend1->close(); delete backend1;*/ //---------------------------------------- backend = new TXine(); int error = backend->init(path.toLocal8Bit()); if(error == CANT_FIND_VIDEO_CODEC) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't open video driver!")); backend->close(); delete backend; return; } if(error == CANT_OPEN_FILE) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't open video file!")); backend->close(); delete backend; return; } videocodec = backend->videoCodec(); audiocodec = backend->audioCodec(); length = backend->getLength(); this->perfectFile(false); backend->close(); delete backend; this->makePreview(false); //player->init(path); toolBox->setEnabled(true); styleBox->setCurrentIndex(previewPanel1->getItemStyle()); sizeBox->setValue((int)(previewPanel1->getScale() * 100)); offsetBox->setValue(previewPanel1->getOffset()); spaceBox->setValue(previewPanel1->getSpace()); colorBox->setColor(settings->getColorBackground()); QImage *tmpImage = new QImage(); *tmpImage = frames->at(0)->getImage(); viewFrame1->setImage(*tmpImage); viewFrame1->setWorkScene(); isOpen = true; saveSceneAct->setEnabled(true); saveMultiAct->setEnabled(true); printAct->setEnabled(true); saveFrameAct->setEnabled(true); delFrameAct->setEnabled(true); } void TMainWindow::openManyMain() { QProgressDialog *progress = new QProgressDialog(); progress->setRange(0, paths.count()); progress->setLabel(new QLabel(tr("Processing video files..."))); progress->setCancelButton(NULL); progress->setWindowModality(Qt::WindowModal); //progress->show(); //test prog = new TProgress; prog->setRangeTop(0, paths.count()); prog->setLabel(tr("Processing video files...")); prog->show(); qApp->processEvents(); for(int i = 0; i < paths.count(); i++) { prog->setCurrentFile(paths.at(i)); qApp->processEvents(); prog->setValueTop(i); this->deleteAllItems(); fileInfo = QFileInfo(this->paths.at(i)); settings->setPath(fileInfo.path()); settings->writeSettings(); backend = new TXine(); int error = backend->init(paths.at(i).toLocal8Bit()); if(error == CANT_FIND_VIDEO_CODEC) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't open video driver!")); backend->close(); delete backend; return; } if(error == CANT_OPEN_FILE) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't open video file!")); backend->close(); delete backend; return; } videocodec = backend->videoCodec(); audiocodec = backend->audioCodec(); length = backend->getLength(); this->perfectFile(true); backend->close(); delete backend; this->makePreview(true); //default format QString df = ""; switch(settings->getFormatImg()) { case(0): { df = ".png"; break; } case(1): { df = ".jpg"; break; } case(2): { df = ".xpm"; break; } } previewPanel1->saveToFile(paths.at(i) + df); //isOpen = true; qApp->processEvents(); } delete progress; delete prog; } void TMainWindow::perfectFile(bool many) { QTime *startTime = new QTime(0, 0, 0); QTime *finishTime = new QTime(0, 0, 0); int start = startTime->msecsTo(settings->getIndentTimeStart()); int finish = finishTime->msecsTo(settings->getIndentTimeFinish()); delete startTime; delete finishTime; if(start > (length - finish)) { start = 0; finish = 0; } int step = (this->length - start - finish) / (settings->getCountFrames() - 1); int j = start;//step; QProgressDialog *progress = new QProgressDialog(); if(!many) // for one file { progress->setRange(0, settings->getCountFrames()); progress->setLabel(new QLabel(tr("Processing video file..."))); progress->setCancelButton(NULL); progress->setWindowModality(Qt::WindowModal); progress->show(); } else { prog->setRangeBottom(0, settings->getCountFrames()); } for(int i = 0; i < settings->getCountFrames(); i++) { if(!many) // for one file progress->setValue(i); else prog->setValueBottom(i); int width, height; //QImage *image = new QImage(backend->getCurrentFrame(j, &width, &height), width, height, QImage::Format_RGB32); QImage image = backend->getCurrentFrame(j);//, &width, &height); QString temp_s = timeToString(j); frames->append(new frameStruct(image, temp_s)); qApp->processEvents(); j = j + step; } if(!many) delete progress; } void TMainWindow::makePreview(bool many) { previewPanel1->setOffsetValue(settings->getIndentBorder()); previewPanel1->setScaleValue(settings->getScale() * .01); previewPanel1->setSpaceValue(settings->getIndentItems()); previewPanel1->setQuality(settings->getQuality()); previewPanel1->setCountHor(settings->getCountHor()); previewPanel1->setfontMetaInfo(settings->getFontMetaInfo()); previewPanel1->setColorInfoText(settings->getColorInfoText()); previewPanel1->setColorInfoInfo(settings->getColorInfoInfo()); previewPanel1->setBackgroundColorValue(settings->getColorBackground()); QString *fileSize = new QString(QString::number(fileInfo.size() / 1024 / 1024) + "Mb"); QString *infoText = new QString(); QString *infoInfo = new QString(); if(settings->getInfoName()) { *infoText += "Title: \n"; *infoInfo += this->fileInfo.fileName() + "\n"; } if(settings->getInfoSize()) { *infoText += "Size: \n"; *infoInfo += *fileSize + "\n"; } if(settings->getInfoDuration()) { *infoText += "Duration: \n"; *infoInfo += timeToString(length) + "\n"; } if(settings->getInfoResolution()) { *infoText += "Resolution: \n"; *infoInfo += QString::number(frames->at(0)->img.width()) + "x" + QString::number(frames->at(0)->img.height()) + "\n"; } if(settings->getInfoVideo()) { *infoText += "Video: \n"; if(videocodec == "") videocodec == "None"; *infoInfo += videocodec + "\n"; } if(settings->getInfoAudio()) { *infoText += "Audio: \n"; if(audiocodec == "") audiocodec = "None"; *infoInfo += audiocodec + "\n"; } previewPanel1->addText(*infoText, *infoInfo); delete fileSize; delete infoText; delete infoInfo; previewPanel1->setList(frames); previewPanel1->createItems(); previewPanel1->prepare(); // show logo if(settings->getLogo()) previewPanel1->addLogo(); //previewPanel1->adjustItems(); previewPanel1->setItemsStyle(settings->getStyle()); if(!many) { previewPanel1->setSceneAfter(); offsetBox->setValue(previewPanel1->getOffset()); listPanel1->setList(frames); listPanel1->createItems(); listPanel1->adjustItems(); } previewPanel1->adjustItems(); } void TMainWindow::S_DelFrame() { if(frames->count() > 0) { QWidget::setCursor(Qt::BusyCursor); int index = listPanel1->getCurrentIndex(); delete []frames->at(index)->img.bits(); listPanel1->deleteItem(index); previewPanel1->deleteItem(index); frames->removeAt(index); QWidget::setCursor(Qt::ArrowCursor); } } void TMainWindow::S_SaveScene() { if(isOpen) { QString fileName = QFileDialog::getSaveFileName(this, tr("Saving..."), \ this->path + ".png", \ tr("Images (*.png *.jpg)")); if(fileName != "") { if(!previewPanel1->saveToFile(fileName)) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't save this file")); } } } } void TMainWindow::S_PrintScene() { QPrinter printer; QPrintDialog dialog(&printer, this); if (dialog.exec() == QDialog::Accepted) { previewPanel1->print(printer); } } void TMainWindow::S_showCurrImage(int curritem) { QImage *tmpImage = new QImage(); *tmpImage = frames->at(curritem)->getImage(); viewFrame1->setImage(*tmpImage); } QString TMainWindow::timeToString(int currPos) { QTime t(0, 0, 0); t = t.addMSecs(currPos); QString temp_s = t.toString("hh:mm:ss"); return temp_s; } void TMainWindow::S_Options() { optionsDialog = new TConfigDialog(); optionsDialog->show(); connect(optionsDialog, SIGNAL(applySettings()), this, SLOT(S_ApplyChanges())); } void TMainWindow::S_ApplyChanges() { settings->sync(); settings->readSettings(); if(isOpen) { //applying for preview previewPanel1->setScale(settings->getScale() * .01); previewPanel1->setSpace(settings->getIndentItems()); previewPanel1->setQuality(settings->getQuality()); previewPanel1->setOffset(settings->getIndentBorder()); previewPanel1->setItemsStyle(settings->getStyle()); QColor *tmp_color = new QColor(settings->getColorBackground()); previewPanel1->setBackgroundColor(*tmp_color); if(settings->getLogo()) { previewPanel1->addLogo(); previewPanel1->adjustItems(); } else { previewPanel1->removeLogo(); } //applying for toolbox styleBox->setCurrentIndex(previewPanel1->getItemStyle()); sizeBox->setValue((int)(previewPanel1->getScale()*100)); offsetBox->setValue(previewPanel1->getOffset()); spaceBox->setValue(previewPanel1->getSpace()); colorBox->setColor(settings->getColorBackground()); } } void TMainWindow::readSettings() { settings->sync(); settings->readSettings(); } void TMainWindow::S_SaveCurrImage() { if(isOpen) { QString fileName = QFileDialog::getSaveFileName(this, tr("Save frame"), \ "/media/sda6/shot.png", \ tr("Images (*.png *.xpm *.jpg)")); if(fileName !="") { if(!frames->at(listPanel1->getCurrentIndex())->img.save(fileName)) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't save this file")); } } } } void TMainWindow::S_SaveAllImages() { QString dirName = QFileDialog::getExistingDirectory(this, tr("Choose directory"), \ fileInfo.path(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(dirName != "") { QProgressDialog *progress = new QProgressDialog(); progress->setRange(0, frames->count()); progress->setLabel(new QLabel(tr("Saving images..."))); progress->setCancelButton(NULL); progress->setWindowModality(Qt::WindowModal); progress->show(); for(int i = 0; i < frames->count(); i++) { qApp->processEvents(); progress->setValue(i); if(!frames->at(i)->img.save(dirName + this->fileInfo.fileName() + QString::number(i) + ".png")) { QMessageBox::critical(0, APPLICATION_NAME, tr("Error! Can't save this file")); break; } } delete progress; } } void TMainWindow::S_ChangeSizeToolbar(bool checked) { if(checked) { int size = 0; if(this->sender() == size16) { size = 16; } if(this->sender() == size24) { size = 24; } if(this->sender() == size32) { size = 32; } if(this->sender() == size48) { size = 48; } toolbar->setIconSize(QSize(size, size)); this->settings->setToolbarSize(size); this->settings->writeSettings(); } } void TMainWindow::S_AboutQt() { QApplication::aboutQt(); } void TMainWindow::S_About() { aboutWindow = new TAboutWindow(); aboutWindow->show(); } void TMainWindow::S_ChangeStyle(int style) { switch(style) { case(0): { previewPanel1->setItemsStyle(shadow); break; } case(1): { previewPanel1->setItemsStyle(seample); break; } } } void TMainWindow::S_ChangeTimePos(int pos) { previewPanel1->setItemTextPos(pos); } void TMainWindow::S_ChangeSize(int size) { previewPanel1->setScale(size * 0.01); previewPanel1->adjustItems(); } void TMainWindow::S_ChangeOffset(int offset) { previewPanel1->setOffset(offset); //previewPanel1->adjustItems(); } void TMainWindow::S_ChangeSpace(int space) { previewPanel1->setSpace(space); //previewPanel1->adjustItems(); } void TMainWindow::S_ChangeColor(QColor &color) { previewPanel1->setBackgroundColor(color); } void TMainWindow::S_Exit() { qApp->quit(); } /*void TMainWindow::S_EnablePlayer() { if(!player->isOpen()) { player->init(path); } }*/ videocut-0.2.0.orig/src/backends/0000755000175000017500000000000010747077175016276 5ustar troorltroorlvideocut-0.2.0.orig/src/backends/TXine.cpp0000644000175000017500000000754310747075211020027 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TXine.h" TXine::TXine() { vo_driver = "auto"; } int TXine::init(const char *mrl) { xine = xine_new(); xine_init(xine); if((vo_port = xine_open_video_driver(xine, vo_driver, XINE_VISUAL_TYPE_NONE, NULL)) == NULL) { return CANT_FIND_VIDEO_CODEC; } stream = xine_stream_new(xine, NULL, vo_port); if(!xine_open(stream, mrl)) { return CANT_OPEN_FILE; } xine_get_pos_length(stream, 0, 0, &length); xine_play(stream, 0, 0); return 0; } const char *TXine::videoCodec() { return xine_get_meta_info(stream, XINE_META_INFO_VIDEOCODEC); } const char *TXine::audioCodec() { return xine_get_meta_info(stream, XINE_META_INFO_AUDIOCODEC); } int TXine::getLength() { return length; } QImage TXine::getCurrentFrame(int frameNumber) const//, int *width, int *height) { int width, height; xine_play(stream, 0, frameNumber); uint8_t *yuv = NULL, *y = NULL, *u = NULL, *v =NULL ; int /*width, height,*/ ratio, format; if (!xine_get_current_frame(this->stream, &width, &height, &ratio, &format, NULL)) { } yuv = new uint8_t[((width + 8) * (height + 1) * 2)]; xine_get_current_frame(this->stream, &width, &height, &ratio, &format, yuv); y = yuv; u = yuv + width * height; v = yuv + width * height * 5 / 4; unsigned char *rgb32BitData = yv12ToRgb(y, u, v, width, height); QImage screenShot(rgb32BitData, width, height, QImage::Format_RGB32); delete [] yuv; //return rgb32BitData; return screenShot; } unsigned char *TXine::yv12ToRgb(uint8_t *src_y, uint8_t *src_u, uint8_t *src_v, int width, int height) const { #define clip_8_bit(val) \ { \ if (val < 0) \ val = 0; \ else \ if (val > 255) val = 255; \ } int i, j; int y, u, v; int r, g, b; int sub_i_uv; int sub_j_uv; int uv_width, uv_height; unsigned char *rgb; uv_width = width / 2; uv_height = height / 2; rgb = new unsigned char[(width * height * 4)]; if (!rgb) { return NULL; } for (i = 0; i < height; ++i) { sub_i_uv = ((i * uv_height) / height); for (j = 0; j < width; ++j) { sub_j_uv = ((j * uv_width) / width); y = src_y[(i * width) + j] - 16; u = src_u[(sub_i_uv * uv_width) + sub_j_uv] - 128; v = src_v[(sub_i_uv * uv_width) + sub_j_uv] - 128; r = (int)((1.1644 * (double)y) + (1.5960 * (double)v)); g = (int)((1.1644 * (double)y) - (0.3918 * (double)u) - (0.8130 * (double)v)); b = (int)((1.1644 * (double)y) + (2.0172 * (double)u)); clip_8_bit (r); clip_8_bit (g); clip_8_bit (b); rgb[(i * width + j) * 4 + 0] = b; rgb[(i * width + j) * 4 + 1] = g; rgb[(i * width + j) * 4 + 2] = r; rgb[(i * width + j) * 4 + 3] = 0; } } return rgb; } void TXine::close() { // Closing Xine xine_close(stream); xine_dispose(stream); xine_close_video_driver(xine,vo_port); } videocut-0.2.0.orig/src/backends/TXine.h0000644000175000017500000000305510747075214017471 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TXINE_H_ #define _TXINE_H_ #include #include #include #include "../const.h" class TXine { public: TXine(); int init(const char *mrl); void close(); const char *videoCodec(); const char *audioCodec(); int getLength(); QImage getCurrentFrame(int) const;//, int*, int*); unsigned char *yv12ToRgb(uint8_t *src_y, uint8_t *src_u, uint8_t *src_v, int width, int height) const; private: int length; xine_t *xine; char *vo_driver; xine_video_port_t *vo_port; // video port xine_stream_t *stream; // stream }; #endif videocut-0.2.0.orig/src/backends/TFfmpeg.h0000644000175000017500000000321510747075204017767 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TFFMPEG_H_ #define _TFFMPEG_H_ #include #include #include "../const.h" class TFfmpeg { public: TFfmpeg(); int init(const char *mrl); void close(); const char *videoCodec(); const char *audioCodec(); int getLength(); const unsigned char *getCurrentFrame(int, int*, int*); //unsigned char *yv12ToRgb(uint8_t *src_y, uint8_t *src_u, uint8_t *src_v, int width, int height); private: //QString videocodec, audiocodec; int length; AVFormatContext *pFormatCtx; AVCodecContext *pCodecCtx; AVCodec *pCodec; AVFrame *pFrame; AVFrame *pFrameRGB; int videoStream; uint8_t *buffer; }; #endif videocut-0.2.0.orig/src/backends/TFfmpeg.cpp0000644000175000017500000001124610747075200020321 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TFfmpeg.h" #include TFfmpeg::TFfmpeg() { } int TFfmpeg::init(const char *mrl) { av_register_all(); // Open video file if(av_open_input_file(&this->pFormatCtx, mrl, NULL, 0, NULL) != 0) return CANT_OPEN_FILE; // Couldn't open file // Retrieve stream information if(av_find_stream_info(this->pFormatCtx) < 0) return CANT_FIND_VIDEO_CODEC; // Couldn't find stream information dump_format(this->pFormatCtx, 0, mrl, 0); int i; // Find the first video stream videoStream = -1; for(i = 0; i < this->pFormatCtx->nb_streams; i++) { if(this->pFormatCtx->streams[i]->codec->codec_type == CODEC_TYPE_VIDEO) { videoStream = i; break; } } if(videoStream == -1) return CANT_FIND_VIDEO_CODEC; // Didn't find a video stream // Get a pointer to the codec context for the video stream this->pCodecCtx = pFormatCtx->streams[videoStream]->codec; // Find the decoder for the video stream this->pCodec = avcodec_find_decoder(pCodecCtx->codec_id); char buf[256]; avcodec_string(buf, sizeof(buf), pCodecCtx, 0); double fps = av_q2d (pFormatCtx->streams[videoStream]->r_frame_rate); if(this->pCodec == NULL) { fprintf(stderr, "Unsupported codec!\n"); return CANT_FIND_VIDEO_CODEC; // Codec not found } // Open codec if(avcodec_open(pCodecCtx, pCodec) < 0) return CANT_FIND_VIDEO_CODEC; // Could not open codec // Allocate video frame this->pFrame = avcodec_alloc_frame(); // Allocate an AVFrame structure this->pFrameRGB = avcodec_alloc_frame(); if(this->pFrameRGB == NULL) return CANT_FIND_VIDEO_CODEC; int numBytes; // Determine required buffer size and allocate buffer numBytes = avpicture_get_size(PIX_FMT_RGBA32, pCodecCtx->width, this->pCodecCtx->height); this->buffer = (uint8_t *)av_malloc(numBytes * sizeof(uint8_t)); // Assign appropriate parts of buffer to image planes in pFrameRGB // Note that pFrameRGB is an AVFrame, but AVFrame is a superset // of AVPicture avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGBA32, pCodecCtx->width, pCodecCtx->height); } const char *TFfmpeg::videoCodec() { return ""; } const char *TFfmpeg::audioCodec() { return ""; } int TFfmpeg::getLength() { return pFormatCtx->duration * 1000 / AV_TIME_BASE; } const unsigned char *TFfmpeg::getCurrentFrame(int frameNumber, int *width, int *height) { frameNumber = frameNumber * AV_TIME_BASE / 1000; *width = pCodecCtx->width; *height = pCodecCtx->height; int frameFinished; AVPacket packet; //seeking av_seek_frame(pFormatCtx, -1, frameNumber, AVSEEK_FLAG_BACKWARD); avcodec_flush_buffers(pCodecCtx); while(av_read_frame(pFormatCtx, &packet) >= 0) { // Is this a packet from the video stream? if(packet.stream_index == videoStream) { // Decode video frame avcodec_decode_video(pCodecCtx, pFrame, &frameFinished, packet.data, packet.size); // Did we get a video frame? if(frameFinished) { // Convert the image from its native format to RGB img_convert((AVPicture *)pFrameRGB, PIX_FMT_RGBA32, (AVPicture*)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height); // Save the frame to disk //SaveFrame(pFrameRGB, pCodecCtx->width, pCodecCtx->height, minute); break; } } } av_free_packet(&packet); //QImage *tmp_image = new QImage(pFrameRGB->data[0], *width, *height, QImage::Format_RGB32); QString tmpstr = "/home/troorl/Desktop/AVcodec_test/" + QString::number(frameNumber) + ".png"; //tmp_image->save(tmpstr); return /*(unsigned char *)*/pFrameRGB->data[0]; } void TFfmpeg::close() { av_free(buffer); av_free(pFrameRGB); // Free the YUV frame av_free(pFrame); // Close the codec avcodec_close(pCodecCtx); // Close the video file av_close_input_file(pFormatCtx); } videocut-0.2.0.orig/src/frameStruct.h0000755000175000017500000000252110747075030017163 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef FRAMESTRUCT_H #define FRAMESTRUCT_H #include #include class frameStruct { public: frameStruct(QImage &img, QString currTime) { this->currTime = currTime; this->img = img; } frameStruct(){} QImage getImage(){return img;} //~frameStruct(){delete img;} QImage img; QString currTime; }; #endif videocut-0.2.0.orig/src/TFrameStruct.cpp0000755000175000017500000000245310747075062017613 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TFrameStruct.h" TFrameStruct::TFrameStruct() : QObject() { } void TFrameStruct::addItem(QString path) { paths << &path; } void TFrameStruct::removeItem(int index) { paths.removeAt(index); } QPixmap TFrameStruct::getItem(int index) { QPixmap *tmpPix = new QPixmap(*paths.at(index)); return *tmpPix; } videocut-0.2.0.orig/src/TOptions/0000755000175000017500000000000010747077224016276 5ustar troorltroorlvideocut-0.2.0.orig/src/TOptions/TPages.cpp0000755000175000017500000001742210747076242020175 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TPages.h" TMainPage::TMainPage(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f) { // first group QGroupBox *secondGroup = new QGroupBox(tr("Result picture options")); countFrames = new QSpinBox(this); countFrames->setMinimum(1); countFrames->setMaximum(100); countFrames->setMaximumWidth(60); QLabel *countFramesLabel = new QLabel(tr("Count of frames:")); QHBoxLayout *countFramesLayer = new QHBoxLayout; countFramesLayer->addWidget(countFramesLabel); countFramesLayer->addWidget(countFrames); countHor = new QSpinBox(this); countHor->setMinimum(1); countHor->setMaximum(100); countHor->setMaximumWidth(60); QLabel *countHorLabel = new QLabel(tr("Count of frames (horisontal):")); QHBoxLayout *countHorLayer = new QHBoxLayout; countHorLayer->addWidget(countHorLabel); countHorLayer->addWidget(countHor); indentBorder = new QSpinBox(this); indentBorder->setMinimum(0); indentBorder->setMaximum(1000); indentBorder->setMaximumWidth(60); QLabel *indentBorderLabel = new QLabel(tr("Offset:")); QHBoxLayout *indentBorderLayer = new QHBoxLayout; indentBorderLayer->addWidget(indentBorderLabel); indentBorderLayer->addWidget(indentBorder); indentItems = new QSpinBox(this); indentItems->setMinimum(0); indentItems->setMaximum(1000); indentItems->setMaximumWidth(60); QLabel *indentItemsLabel = new QLabel(tr("Indention between items:")); QHBoxLayout *indentItemsLayer = new QHBoxLayout; indentItemsLayer->addWidget(indentItemsLabel); indentItemsLayer->addWidget(indentItems); scale = new QSpinBox(this); scale->setMinimum(5); scale->setMaximum(100); scale->setMaximumWidth(60); QLabel *scaleLabel = new QLabel(tr("Scale of frames (%):")); QHBoxLayout *scaleLayer = new QHBoxLayout; scaleLayer->addWidget(scaleLabel); scaleLayer->addWidget(scale); quality = new QSpinBox(this); quality->setMinimum(0); quality->setMaximum(100); quality->setMaximumWidth(60); QLabel *qualityLabel = new QLabel(tr("Quality of result image (0-100):")); QHBoxLayout *qualityLayer = new QHBoxLayout; qualityLayer->addWidget(qualityLabel); qualityLayer->addWidget(quality); formatImg = new QComboBox(this); formatImg->setMaximumWidth(60); formatImg->addItem("png"); formatImg->addItem("jpg"); formatImg->addItem("xpm"); QLabel *formatImgLabel = new QLabel(tr("Default image format")); QHBoxLayout *formatImgLayer = new QHBoxLayout; formatImgLayer->addWidget(formatImgLabel); formatImgLayer->addWidget(formatImg); logo = new QCheckBox(tr("Show logo")); QVBoxLayout *resultLayer = new QVBoxLayout; resultLayer->addLayout(countFramesLayer); resultLayer->addLayout(countHorLayer); resultLayer->addLayout(indentBorderLayer); resultLayer->addLayout(indentItemsLayer); resultLayer->addLayout(scaleLayer); resultLayer->addLayout(qualityLayer); resultLayer->addLayout(formatImgLayer); resultLayer->addWidget(logo); secondGroup->setLayout(resultLayer); QGroupBox *indentGroup = new QGroupBox(tr("Indentations")); indentTimeStart = new QTimeEdit(this); indentTimeStart->setMaximumWidth(100); QLabel *indentTimeStartLabel = new QLabel(tr("Indentftion of start:")); QHBoxLayout *indentTimeStartLayer = new QHBoxLayout; indentTimeStartLayer->addWidget(indentTimeStartLabel); indentTimeStartLayer->addWidget(indentTimeStart); indentTimeFinish = new QTimeEdit(this); indentTimeFinish->setMaximumWidth(100); QLabel *indentTimeFinishLabel = new QLabel(tr("Indentation of finish:")); QHBoxLayout *indentTimeFinishLayer = new QHBoxLayout; indentTimeFinishLayer->addWidget(indentTimeFinishLabel); indentTimeFinishLayer->addWidget(indentTimeFinish); QVBoxLayout *resultIndentLayer = new QVBoxLayout; resultIndentLayer->addLayout(indentTimeStartLayer); resultIndentLayer->addLayout(indentTimeFinishLayer); indentGroup->setLayout(resultIndentLayer); QGroupBox *styleGroup = new QGroupBox(tr("Styles")); QLabel *styleLabel = new QLabel(tr("Style:")); styleBox = new QComboBox; styleBox->addItem(tr("Shadowed")); styleBox->addItem(tr("Simple")); QHBoxLayout *styleLayout = new QHBoxLayout; styleLayout->addWidget(styleLabel); styleLayout->addWidget(styleBox); QVBoxLayout *configLayout = new QVBoxLayout; configLayout->addLayout(styleLayout); styleGroup->setLayout(configLayout); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(secondGroup); mainLayout->addWidget(indentGroup); mainLayout->addWidget(styleGroup); mainLayout->addStretch(1); setLayout(mainLayout); } TFileInfoPage::TFileInfoPage(QWidget *parent) : QWidget(parent) { QGroupBox *fileInfoGroup = new QGroupBox(tr("File information")); infoName = new QCheckBox(tr("Name of file")); infoSize = new QCheckBox(tr("Size of file")); infoDuration = new QCheckBox(tr("Duration")); infoResolution = new QCheckBox(tr("Resolution of video")); infoVideo = new QCheckBox(tr("Video codec information")); infoAudio = new QCheckBox(tr("Audio codec information")); QVBoxLayout *infoLayout = new QVBoxLayout; infoLayout->addWidget(infoName); infoLayout->addWidget(infoSize); infoLayout->addWidget(infoDuration); infoLayout->addWidget(infoResolution); infoLayout->addWidget(infoVideo); infoLayout->addWidget(infoAudio); fileInfoGroup->setLayout(infoLayout); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(fileInfoGroup); mainLayout->addStretch(1); setLayout(mainLayout); } TFontsPage::TFontsPage(QWidget *parent) : QWidget(parent) { // font for metainfo f1 = new TFontChoser(this); f1->setText(tr("Font for meta-information:")); // font for time f2 = new TFontChoser(this); f2->setText(tr("Font for timestamps:")); // adding widgets to the vertical layour QVBoxLayout *configLayout = new QVBoxLayout; QGroupBox *configGroup = new QGroupBox(tr("Fonts")); configLayout->addLayout(f1->getLayout()); configLayout->addLayout(f2->getLayout()); configGroup->setLayout(configLayout); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(configGroup); mainLayout->addStretch(1); setLayout(mainLayout); } TColorPage::TColorPage(QWidget *parent) : QWidget(parent) { colorInfoText = new TColorChoser(this); colorInfoText->setText(tr("Color for meta-information (first column):")); colorInfoInfo = new TColorChoser(this); colorInfoInfo->setText(tr("Color for meta-information (second column):")); colorBackground = new TColorChoser(this); colorBackground->setText(tr("Background color:")); QVBoxLayout *configLayout = new QVBoxLayout; QGroupBox *configGroup = new QGroupBox(tr("Colors")); configLayout->addLayout(colorInfoText->getLayout()); configLayout->addLayout(colorInfoInfo->getLayout()); configLayout->addLayout(colorBackground->getLayout()); configGroup->setLayout(configLayout); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(configGroup); mainLayout->addStretch(1); setLayout(mainLayout); } videocut-0.2.0.orig/src/TOptions/TColorChoser.h0000755000175000017500000000274010747076213021020 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TCOLORCHOSER_H_ #define _TCOLORCHOSER_H_ #include class TColorChoser : public QWidget { Q_OBJECT public: TColorChoser(QWidget *parent = 0); QHBoxLayout *getLayout(); void setText(QString); void setColor(QColor); QColor getColor(); private slots: void S_SelectColor(); signals: void colorChanged(QColor &); private: QString toStyle(QString); QLabel *colorLabel; QPushButton *colorSelect; QHBoxLayout *hLayout; QColor tmp_color; }; #endif videocut-0.2.0.orig/src/TOptions/TConfigdialog.h0000755000175000017500000000344310747076223021165 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TCONFIGDIALOG_H_ #define _TCONFIGDIALOG_H_ #include #include "TPages.h" #include "TFontChoser.h" #include "TUserSettings.h" class QListWidget; class QListWidgetItem; class QStackedWidget; class TConfigDialog : public QDialog { Q_OBJECT public: TConfigDialog(); void ReadSettings(); TMainPage *page1; TFontsPage *page2; TFileInfoPage *page3; TColorPage *page4; TUserSettings *settings; QPushButton *closeButton; QPushButton *applyButton; QPushButton *okButton; QListWidget *contentsWidget; QStackedWidget *pagesWidget; private slots: void changePage(QListWidgetItem *current, QListWidgetItem *previous); void S_WriteSettings(); void S_WriteSettingsOk(); signals: void applySettings(); private: void createIcons(); }; #endif videocut-0.2.0.orig/src/TOptions/TConfigdialog.cpp0000755000175000017500000001615010747076216021521 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TConfigdialog.h" TConfigDialog::TConfigDialog() { // List of pages contentsWidget = new QListWidget; contentsWidget->setFlow(QListView::LeftToRight); contentsWidget->setViewMode(QListView::IconMode); contentsWidget->setIconSize(QSize(32, 32)); contentsWidget->setMaximumHeight(64); // Pages of options pagesWidget = new QStackedWidget; page1 = new TMainPage(this); page2 = new TFontsPage(this); page3 = new TFileInfoPage(this); page4 = new TColorPage(this); pagesWidget->addWidget(page1); pagesWidget->addWidget(page2); pagesWidget->addWidget(page3); pagesWidget->addWidget(page4); // Bottom buttons closeButton = new QPushButton(tr("Close")); applyButton = new QPushButton(tr("Apply")); okButton = new QPushButton(tr("Ok")); createIcons(); contentsWidget->setCurrentRow(0); connect(closeButton, SIGNAL(clicked()), this, SLOT(close())); QVBoxLayout *verticalLayout = new QVBoxLayout; verticalLayout->addWidget(contentsWidget); verticalLayout->addWidget(pagesWidget); QHBoxLayout *buttonsLayout = new QHBoxLayout; buttonsLayout->addStretch(1); buttonsLayout->addWidget(okButton); buttonsLayout->addWidget(applyButton); buttonsLayout->addWidget(closeButton); buttonsLayout->setContentsMargins(0, 0, 0, 11); verticalLayout->addLayout(buttonsLayout); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addLayout(verticalLayout); mainLayout->addSpacing(0); mainLayout->setContentsMargins(0, 0, 0, 0); mainLayout->setSizeConstraint(QLayout::SetMinimumSize); setLayout(mainLayout); setWindowTitle(tr("Config Dialog")); this->setModal(true); // Read options settings = new TUserSettings(); this->ReadSettings(); connect(applyButton, SIGNAL(clicked()), this, SLOT(S_WriteSettings())); connect(okButton, SIGNAL(clicked()), this, SLOT(S_WriteSettingsOk())); } void TConfigDialog::createIcons() { QListWidgetItem *configButton = new QListWidgetItem(contentsWidget); configButton->setIcon(QIcon(":/img/options.png")); configButton->setText(tr("Main options")); configButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *updateButton = new QListWidgetItem(contentsWidget); updateButton->setIcon(QIcon(":/img/fonts.png")); updateButton->setText(tr("Fonts")); updateButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *fileInfoButton = new QListWidgetItem(contentsWidget); fileInfoButton->setIcon(QIcon(":/img/about.png")); fileInfoButton->setText(tr("File information")); fileInfoButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem *fileColorButton = new QListWidgetItem(contentsWidget); fileColorButton->setIcon(QIcon(":/img/colors.png")); fileColorButton->setText(tr("Colors")); fileColorButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); connect(contentsWidget, SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)), this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*))); } void TConfigDialog::ReadSettings() { settings->sync(); settings->readSettings(); page1->countFrames->setValue(settings->getCountFrames()); page1->countHor->setValue(settings->getCountHor()); page1->indentBorder->setValue(settings->getIndentBorder()); page1->indentItems->setValue(settings->getIndentItems()); page1->scale->setValue((int)settings->getScale()); page1->quality->setValue(settings->getQuality()); page1->formatImg->setCurrentIndex(settings->getFormatImg()); page1->logo->setChecked(settings->getLogo()); page1->styleBox->setCurrentIndex(settings->getStyle()); page1->indentTimeStart->setTime(settings->getIndentTimeStart()); page1->indentTimeFinish->setTime(settings->getIndentTimeFinish()); page2->f1->setFont(settings->getFontMetaInfo()); page2->f2->setFont(settings->getFontTimeInfo()); page3->infoName->setChecked(settings->getInfoName()); page3->infoSize->setChecked(settings->getInfoSize()); page3->infoDuration->setChecked(settings->getInfoDuration()); page3->infoResolution->setChecked(settings->getInfoResolution()); page3->infoVideo->setChecked(settings->getInfoVideo()); page3->infoAudio->setChecked(settings->getInfoAudio()); page4->colorInfoText->setColor(settings->getColorInfoText()); page4->colorInfoInfo->setColor(settings->getColorInfoInfo()); page4->colorBackground->setColor(settings->getColorBackground()); } void TConfigDialog::S_WriteSettings() // write settings to the config-file { settings->sync(); // write settings to the structure settings->setCountFrames(page1->countFrames->value()); settings->setCountHor(page1->countHor->value()); settings->setIndentBorder(page1->indentBorder->value()); settings->setIndentItems(page1->indentItems->value()); settings->setScale(page1->scale->value()); settings->setQuality(page1->quality->value()); settings->setFormatImg(page1->formatImg->currentIndex()); settings->setLogo(page1->logo->isChecked()); settings->setStyle(page1->styleBox->currentIndex()); settings->setIndentTimeStart(page1->indentTimeStart->time()); settings->setIndentTimeFinish(page1->indentTimeFinish->time()); settings->setFontMetaInfo(page2->f1->getFont()); settings->setFontTimeInfo(page2->f2->getFont()); settings->setInfoName(page3->infoName->isChecked()); settings->setInfoSize(page3->infoSize->isChecked()); settings->setInfoDuration(page3->infoDuration->isChecked()); settings->setInfoResolution(page3->infoResolution->isChecked()); settings->setInfoVideo(page3->infoVideo->isChecked()); settings->setInfoAudio(page3->infoAudio->isChecked()); settings->setColorInfoText(page4->colorInfoText->getColor()); settings->setColorInfoInfo(page4->colorInfoInfo->getColor()); settings->setColorBackground(page4->colorBackground->getColor()); settings->writeSettings(); // write settings to the config emit applySettings(); // generating signal about new settings } void TConfigDialog::S_WriteSettingsOk() { S_WriteSettings(); close(); } void TConfigDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous) { if (!current) current = previous; pagesWidget->setCurrentIndex(contentsWidget->row(current)); } videocut-0.2.0.orig/src/TOptions/TColorChoser.cpp0000755000175000017500000000416610747076210021354 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TColorChoser.h" TColorChoser::TColorChoser(QWidget *parent) :QWidget(parent) { colorLabel = new QLabel(this); colorSelect = new QPushButton(this); colorSelect->setMaximumWidth(30); tmp_color = QColor(0, 0, 0, 255); hLayout = new QHBoxLayout; hLayout->addWidget(colorLabel); hLayout->addWidget(colorSelect); connect(colorSelect, SIGNAL(clicked()), this, SLOT(S_SelectColor())); } void TColorChoser::setText(QString text) { colorLabel->setText(text); } void TColorChoser::setColor(QColor color) { tmp_color = color; colorSelect->setStyleSheet(this->toStyle(tmp_color.name())); } QColor TColorChoser::getColor() { return tmp_color; } QHBoxLayout *TColorChoser::getLayout() { return hLayout; } void TColorChoser::S_SelectColor() { bool ok; tmp_color.setRgba(QColorDialog::getRgba(tmp_color.rgba(), &ok, this)); if(ok) { colorSelect->setStyleSheet(this->toStyle(tmp_color.name())); emit colorChanged(tmp_color); } else { // } } QString TColorChoser::toStyle(QString color_name) { return "QPushButton { background-color: " + color_name + "; border-color: black; border-width: 1px; border-style: solid; }"; } videocut-0.2.0.orig/src/TOptions/TPages.h0000755000175000017500000000435110747076246017643 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TPAGES_H_ #define _TPAGES_H_ #include #include #include "TFontChoser.h" #include "TColorChoser.h" class TMainPage : public QWidget { Q_OBJECT public: TMainPage(QWidget *parent = 0, Qt::WindowFlags f = 0); // Result picture parametres QSpinBox *countFrames; QSpinBox *countHor; QSpinBox *indentBorder; QSpinBox *indentItems; QSpinBox *scale; // indents QTimeEdit *indentTimeStart; QTimeEdit *indentTimeFinish; //style QComboBox *styleBox; //quality QSpinBox *quality; // default image format QComboBox *formatImg; // show logo QCheckBox *logo; }; class TFileInfoPage : public QWidget { Q_OBJECT public: TFileInfoPage(QWidget *parent = 0); QCheckBox *infoName; QCheckBox *infoSize; QCheckBox *infoDuration; QCheckBox *infoResolution; QCheckBox *infoVideo; QCheckBox *infoAudio; }; class TFontsPage : public QWidget { Q_OBJECT public: TFontsPage(QWidget *parent = 0); //GUI TFontChoser *f1; // font for metainfo TFontChoser *f2; // font for time }; class TColorPage : public QWidget { Q_OBJECT public: TColorPage(QWidget *parent = 0); //GUI TColorChoser *colorInfoText; TColorChoser *colorInfoInfo; TColorChoser *colorBackground; }; #endif videocut-0.2.0.orig/src/TOptions/TFontChoser.h0000755000175000017500000000262710747076231020654 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TFONTCHOSER_H_ #define _TFONTCHOSER_H_ #include class TFontChoser : public QWidget { Q_OBJECT public: TFontChoser(QWidget *parent = 0); void setFont(QFont font); void setText(QString text); QHBoxLayout *getLayout(); QFont getFont(); private slots: void S_SelectFont(); private: QLabel *fontLabel; QLineEdit *fontName; QPushButton *fontSelect; QHBoxLayout *hLayout; }; #endif videocut-0.2.0.orig/src/TOptions/TUserSettings.h0000755000175000017500000000624710747076256021252 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TUSERSETTINGS_H_ #define _TUSERSETTINGS_H_ #include #include #include #include "../const.h" class TUserSettings { //Q_OBJECT public: TUserSettings(); ~TUserSettings(void); void readSettings(); void writeSettings(); void sync(); int getToolbarSize(); QRect getGeometry(); QString getPath(); bool getShowPanel(); QFont getFontMetaInfo(); QFont getFontTimeInfo(); int getCountFrames(); int getCountHor(); int getIndentBorder(); int getIndentItems(); qreal getScale(); int getStyle(); int getQuality(); int getFormatImg(); bool getLogo(); QTime getIndentTimeStart(); QTime getIndentTimeFinish(); bool getInfoName(); bool getInfoSize(); bool getInfoDuration(); bool getInfoResolution(); bool getInfoVideo(); bool getInfoAudio(); QColor getColorInfoText(); QColor getColorInfoInfo(); QColor getColorBackground(); void setToolbarSize(int); void setGeometry(QRect); void setPath(QString); void setShowPanel(bool); void setFontMetaInfo(QFont); void setFontTimeInfo(QFont); void setCountFrames(int); void setCountHor(int); void setIndentBorder(int); void setIndentItems(int); void setScale(qreal); void setStyle(int); void setQuality(int); void setFormatImg(int); void setLogo(bool); void setIndentTimeStart(QTime); void setIndentTimeFinish(QTime); void setInfoName(bool); void setInfoSize(bool); void setInfoDuration(bool); void setInfoResolution(bool); void setInfoVideo(bool); void setInfoAudio(bool); void setColorInfoText(QColor); void setColorInfoInfo(QColor); void setColorBackground(QColor); protected: private: QSettings *settings; // main window int toolbarSize; QRect geometry; QString path; bool showPanel; int countFrames; int countHor; int indentBorder; int indentItems; qreal scale; int style; int quality; int formatImg; bool logo; QTime indentTimeStart; QTime indentTimeFinish; bool infoName; bool infoSize; bool infoDuration; bool infoResolution; bool infoVideo; bool infoAudio; // fonts QFont fontMetaInfo; QFont fontTimeInfo; // colors QColor colorInfoText; QColor colorInfoInfo; QColor colorBackground; }; #endif videocut-0.2.0.orig/src/TOptions/TFontChoser.cpp0000755000175000017500000000444010747076225021205 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TFontChoser.h" TFontChoser::TFontChoser(QWidget *parent) :QWidget(parent) { fontLabel = new QLabel(this); fontName = new QLineEdit(this); fontName->setEnabled(false); QPalette palette; palette.setColor(QPalette::Base, this->palette().background().color()); fontName->setPalette(palette); fontSelect = new QPushButton(this); fontSelect->setText(tr("Choose...")); // adding widgets to horizontal layout hLayout = new QHBoxLayout; hLayout->addWidget(fontLabel); hLayout->addWidget(fontName); hLayout->addWidget(fontSelect); connect(fontSelect, SIGNAL(clicked()), this, SLOT(S_SelectFont())); } void TFontChoser::setFont(QFont font) { fontName->setFont(font); fontName->setText(font.family()); } void TFontChoser::setText(QString text) { fontLabel->setText(text); } QHBoxLayout *TFontChoser::getLayout() { return hLayout; } QFont TFontChoser::getFont() { return fontName->font(); } void TFontChoser::S_SelectFont() // view font dialog { bool ok; QFont font = QFontDialog::getFont(&ok, fontName->font(), this); if(ok) { //fontTimeInfo = font; fontName->setFont(font); fontName->setText(font.family()); } else { // the user canceled the dialog; font is set to the initial // value, in this case Times, 12. } } videocut-0.2.0.orig/src/TOptions/TUserSettings.cpp0000755000175000017500000002153010747076253021572 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TUserSettings.h" TUserSettings::TUserSettings() { settings = new QSettings("VideoCut", "VideoCut"); } TUserSettings::~TUserSettings(void) { } void TUserSettings::readSettings() // read settings { // main window settings settings->beginGroup("MainWindow"); toolbarSize = settings->value("toolbarSize", 48).toInt(); geometry = settings->value("geometry", QRect(0, 0, 700, 600)).toRect(); path = settings->value("path", "~/").toString(); showPanel = settings->value("showPanel", true).toBool(); settings->endGroup(); // preview settings settings->beginGroup("Preview"); countFrames = settings->value("countFrames", 15).toInt(); countHor = settings->value("countHor", 3).toInt(); indentBorder = settings->value("indentBorder", 20).toInt(); indentItems = settings->value("indentItems", 20).toInt(); scale = settings->value("scale", 40).toDouble(); style = settings->value("style", 0).toInt(); quality = settings->value("quality", 70).toInt(); formatImg = settings->value("formatImg", 0).toInt(); logo = settings->value("logo", true).toBool(); infoName = settings->value("infoName", true).toBool(); infoSize = settings->value("infoSize", true).toBool(); infoDuration = settings->value("infoDuration", true).toBool(); infoResolution = settings->value("infoResolution", true).toBool(); infoVideo = settings->value("infoVideo", true).toBool(); infoAudio = settings->value("infoAudio", true).toBool(); settings->endGroup(); // time settings settings->beginGroup("Time"); indentTimeStart = settings->value("indentTimeStart").value(); indentTimeFinish = settings->value("indentTimeFinish").value(); settings->endGroup(); // fonts settings settings->beginGroup("Fonts"); fontMetaInfo = settings->value("fontMetaInfo").value(); fontTimeInfo = settings->value("fontTimeInfo").value(); settings->endGroup(); // colors settings settings->beginGroup("Colors"); colorInfoText = settings->value("colorInfoText", QColor(0, 0, 0, 255)).value(); colorInfoInfo = settings->value("colorInfoInfo", QColor(0, 0, 0, 255)).value(); colorBackground = settings->value("colorBackground", QColor(255, 255, 255, 255)).value(); settings->endGroup(); } void TUserSettings::writeSettings() // write settings { // main window settings settings->beginGroup("MainWindow"); settings->setValue("toolbarSize", toolbarSize); settings->setValue("geometry", geometry); settings->setValue("path", path); settings->setValue("showPanel", showPanel); settings->endGroup(); // preview settings settings->beginGroup("Preview"); settings->setValue("countFrames", countFrames); settings->setValue("countHor", countHor); settings->setValue("indentBorder", indentBorder); settings->setValue("indentItems", indentItems); settings->setValue("scale", scale); settings->setValue("style", style); settings->setValue("quality", quality); settings->setValue("formatImg", formatImg); settings->setValue("logo", logo); settings->setValue("infoName", infoName); settings->setValue("infoSize", infoSize); settings->setValue("infoDuration", infoDuration); settings->setValue("infoResolution", infoResolution); settings->setValue("infoVideo", infoVideo); settings->setValue("infoAudio", infoAudio); settings->endGroup(); // time settings settings->beginGroup("Time"); settings->setValue("indentTimeStart", indentTimeStart); settings->setValue("indentTimeFinish", indentTimeFinish); settings->endGroup(); // fonts settings settings->beginGroup("Fonts"); settings->setValue("fontMetaInfo", fontMetaInfo); settings->setValue("fontTimeInfo", fontTimeInfo); settings->endGroup(); // colors settings settings->beginGroup("Colors"); settings->setValue("colorInfoText", colorInfoText); settings->setValue("colorInfoInfo", colorInfoInfo); settings->setValue("colorBackground", colorBackground); settings->endGroup(); } void TUserSettings::sync() { settings->sync(); } /////// returning functions //////// int TUserSettings::getToolbarSize() { return toolbarSize; } QRect TUserSettings::getGeometry() { return geometry; } QString TUserSettings::getPath() { return path; } bool TUserSettings::getShowPanel() { return showPanel; } QFont TUserSettings::getFontMetaInfo() { return fontMetaInfo; } QFont TUserSettings::getFontTimeInfo() { return fontTimeInfo; } int TUserSettings::getCountFrames() { return countFrames; } int TUserSettings::getCountHor() { return countHor; } int TUserSettings::getIndentBorder() { return indentBorder; } int TUserSettings::getIndentItems() { return indentItems; } qreal TUserSettings::getScale() { return scale; } int TUserSettings::getStyle() { return style; } int TUserSettings::getQuality() { return quality; } int TUserSettings::getFormatImg() { if(formatImg > 2 || formatImg < 0) formatImg = 0; return formatImg; } bool TUserSettings::getLogo() { return logo; } QTime TUserSettings::getIndentTimeStart() { return indentTimeStart; } QTime TUserSettings::getIndentTimeFinish() { return indentTimeFinish; } bool TUserSettings::getInfoName() { return infoName; } bool TUserSettings::getInfoSize() { return infoSize; } bool TUserSettings::getInfoDuration() { return infoDuration; } bool TUserSettings::getInfoResolution() { return infoResolution; } bool TUserSettings::getInfoVideo() { return infoVideo; } bool TUserSettings::getInfoAudio() { return infoAudio; } QColor TUserSettings::getColorInfoText() { return colorInfoText; } QColor TUserSettings::getColorInfoInfo() { return colorInfoInfo; } QColor TUserSettings::getColorBackground() { return colorBackground; } /////// write functions //////// void TUserSettings::setToolbarSize(int toolbarSize) { this->toolbarSize = toolbarSize; } void TUserSettings::setGeometry(QRect geometry) { this->geometry = geometry; } void TUserSettings::setPath(QString path) { this->path = path; } void TUserSettings::setShowPanel(bool showPanel) { this->showPanel = showPanel; } void TUserSettings::setFontMetaInfo(QFont fontMetaInfo) { this->fontMetaInfo = fontMetaInfo; } void TUserSettings::setFontTimeInfo(QFont fontTimeInfo) { this->fontTimeInfo = fontTimeInfo; } void TUserSettings::setCountFrames(int countFrames) { this->countFrames = countFrames; } void TUserSettings::setCountHor(int countHor) { this->countHor = countHor; } void TUserSettings::setIndentBorder(int indentBorder) { this->indentBorder = indentBorder; } void TUserSettings::setIndentItems(int indentItems) { this->indentItems = indentItems; } void TUserSettings::setScale(qreal scale) { this->scale = scale; } void TUserSettings::setStyle(int style) { this->style = style; } void TUserSettings::setQuality(int quality) { this->quality = quality; } void TUserSettings::setFormatImg(int formatImg) { this->formatImg = formatImg; } void TUserSettings::setLogo(bool logo) { this->logo = logo; } void TUserSettings::setIndentTimeStart(QTime indentTimeStart) { this->indentTimeStart = indentTimeStart; } void TUserSettings::setIndentTimeFinish(QTime indentTimeFinish) { this->indentTimeFinish = indentTimeFinish; } void TUserSettings::setInfoName(bool infoName) { this->infoName = infoName; } void TUserSettings::setInfoSize(bool infoSize) { this->infoSize = infoSize; } void TUserSettings::setInfoDuration(bool infoDuration) { this->infoDuration = infoDuration; } void TUserSettings::setInfoResolution(bool infoResolution) { this->infoResolution = infoResolution; } void TUserSettings::setInfoVideo(bool infoVideo) { this->infoVideo = infoVideo; } void TUserSettings::setInfoAudio(bool infoAudio) { this->infoAudio = infoAudio; } void TUserSettings::setColorInfoText(QColor colorInfoText) { this->colorInfoText = colorInfoText; } void TUserSettings::setColorInfoInfo(QColor colorInfoInfo) { this->colorInfoInfo = colorInfoInfo; } void TUserSettings::setColorBackground(QColor colorBackground) { this->colorBackground = colorBackground; } videocut-0.2.0.orig/src/TPreviewPanel/0000755000175000017500000000000010747101614017233 5ustar troorltroorlvideocut-0.2.0.orig/src/TPreviewPanel/TGraphItem.h0000755000175000017500000000372110747076376021436 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TGRAPHITEM_H_ #define _TGRAPHITEM_H_ #include "../const.h" #include #include #include #include #include class TGraphItem : public QGraphicsItem { public: TGraphItem(QImage &p, int style, qreal scale, QString); TGraphItem(){}; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QRectF boundingRect() const; void scale(qreal); void setItemTextPos(uint); void drawTimestamps(QPainter *); void adjustTimestamps(); void setStyle(int); //varable styles of paint void paint0(QPainter *painter); void paint1(QPainter *painter); private: QImage *p; QString timeText; int w_s, h_s; int pix_w, pix_h; int style; uint textPos; uint shadowSize; int tmst_offset; QRect bound; QRectF boundRect, pixRect, realPixRect; QRectF shadowRect; //for paint0 only!!!! QRect textRect1, textRect2; QPen shadowPen; QFont timeFont; }; #endif videocut-0.2.0.orig/src/TPreviewPanel/TBackground.h0000755000175000017500000000271710747076365021637 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TBACKGROUND_H_ #define _TBACKGROUND_H_ #include #include #include class TBackground : public QGraphicsItem { public: TBackground(QRectF *, QColor); TBackground(){}; void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); QRectF boundingRect() const; void setSize(QRectF *); void setColor(QColor); QColor getColor(); private: QColor color; QRectF *bound; }; #endif videocut-0.2.0.orig/src/TPreviewPanel/TPreviewPanel.cpp0000755000175000017500000002262210747101603022471 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TPreviewPanel.h" TPreviewPanel::TPreviewPanel(QWidget* parent, Qt::WindowFlags) : QGraphicsView(parent) { isOpen = false; scene = new QGraphicsScene(this); backgroundRect = new TBackground(); infoTextHeight = 0; countItems = 0; offset = 20; h = 100; this->space = 20; style = 0; colorBackground = QColor(255, 255, 255, 255); this->currentZoom = 1; this->menuInit(); this->setVisible(true); this->tempSceneBorn(); this->setScene(tempScene); resultPix = new QPixmap(); graphItems = new QList(); listItems = new QList(); //autoredraw = false; this->setDragMode(QGraphicsView::ScrollHandDrag); //Logo svg logo = new TLogo(); logo_added = false; } void TPreviewPanel::tempSceneBorn() { tempScene = new QGraphicsScene(this); QRadialGradient gradient(QPoint(70, 70), 170, QPoint(70, 70)); gradient.setColorAt(0.05, Qt::white); //gradient.setColorAt(0.8, Qt::green); gradient.setColorAt(1, Qt::black); tempScene->setBackgroundBrush(QBrush(gradient)); QGraphicsPixmapItem *logoItem = new QGraphicsPixmapItem(QPixmap(":/img/logo.svg")); tempScene->addItem(logoItem); } void TPreviewPanel::menuInit() { zoomInAct = new QAction(tr("Zoom in"), this); zoomInAct->setIcon(QIcon(":/img/zoomin.png")); this->addAction(zoomInAct); connect(zoomInAct, SIGNAL(triggered()), this, SLOT(S_ZoomInOut())); zoomOutAct = new QAction(tr("Zoom out"), this); zoomOutAct->setIcon(QIcon(":/img/zoomout.png")); this->addAction(zoomOutAct); connect(zoomOutAct, SIGNAL(triggered()), this, SLOT(S_ZoomInOut())); this->setContextMenuPolicy(Qt::ActionsContextMenu); } void TPreviewPanel::setAtributes(int offset, qreal h_proc, int space, int hor_count, \ QFont fontMetaInfo, QColor colorInfoText, QColor colorInfoInfo, \ QColor colorBackground) { this->countItems = countItems; this->offset = offset; this->h_proc = h_proc; this->space = space; this->hor_count = hor_count; this->fontMetaInfo = fontMetaInfo; this->colorInfoText = colorInfoText; this->colorInfoInfo = colorInfoInfo; this->colorBackground = colorBackground; } void TPreviewPanel::addText(QString infoText, QString infoInfo) { this->infoText = new QGraphicsTextItem(infoText); fontMetaInfo.setBold(true); this->infoText->setFont(fontMetaInfo); this->infoText->setDefaultTextColor(colorInfoText); infoTextHeight = (int)this->infoText->boundingRect().height(); scene->addItem(this->infoText); this->infoText->setPos(offset, offset); this->infoText->setZValue(1); this->infoInfo = new QGraphicsTextItem(infoInfo); fontMetaInfo.setBold(false); this->infoInfo->setFont(fontMetaInfo); this->infoInfo->setDefaultTextColor(colorInfoInfo); scene->addItem(this->infoInfo); this->infoInfo->setPos(this->infoText->boundingRect().width() + 20, offset); this->infoInfo->setZValue(1); } void TPreviewPanel::addLogo() { //set logo if(!logo_added) { scene->addItem(logo); logo->setPos(0, 0); logo_added = true; } } void TPreviewPanel::removeLogo() { if(logo_added) { scene->removeItem(logo); logo_added = false; } } void TPreviewPanel::createItems() { for(int i = 0; i < listItems->count(); i++) { TGraphItem *item = new TGraphItem(listItems->at(i)->img, style, h_proc, listItems->at(i)->currTime); item->setZValue(1); *graphItems << item; scene->addItem(graphItems->at(i)); } isOpen = true; } void TPreviewPanel::setItemsStyle(int style) { for(int i = 0; i < graphItems->count(); i++) { graphItems->at(i)->setStyle(style); } this->style = style; } void TPreviewPanel::adjustItems() { backgroundRect->setSize(&QRectF(0, 0, 1, 1)); logo->setSize(QRect(0, 0, 1, 1)); // adjust meta text this->infoText->setPos(offset, offset); this->infoInfo->setPos(infoText->pos().x() + infoText->boundingRect().width() + 10, offset); // djust pixmap items int inc = offset; int vertical = infoTextHeight + offset; int j = 0; for(int i = 0; i < graphItems->count(); i++) { if(j == hor_count) { j = 0; inc = offset; vertical = (int)(vertical + graphItems->at(i)->boundingRect().height() + space); } graphItems->at(i)->setPos(inc, vertical); inc = (int)(inc + graphItems->at(i)->boundingRect().width() + space); j++; } //adjust background scene->setSceneRect(0, 0, scene->itemsBoundingRect().width() + offset, scene->itemsBoundingRect().height() + offset); QRectF *bkRect = new QRectF(scene->sceneRect()); backgroundRect->setSize(bkRect); //adjust logo if(logo_added) { logo->setSize(QRect(offset, offset, backgroundRect->boundingRect().width() - offset * 2, infoText->boundingRect().height() - offset)); } } void TPreviewPanel::prepare() { QRectF *bkRect = new QRectF(0, 0, scene->itemsBoundingRect().width() + offset * 2, scene->itemsBoundingRect().height() + offset * 2); backgroundRect->setSize(bkRect); backgroundRect->setColor(colorBackground); scene->addItem(backgroundRect); backgroundRect->setZValue(-1); // set background QPixmap *tempPixmap = new QPixmap(":img/background.png", "PNG"); QBrush *tempBrush = new QBrush(QColor(55, 55, 55, 255)); tempBrush->setTexture(*tempPixmap); this->setBackgroundBrush(*tempBrush); this->setCacheMode(QGraphicsView::CacheBackground); this->setAlignment(Qt::AlignCenter); } void TPreviewPanel::setSceneAfter() { // set scene this->setScene(scene); } void TPreviewPanel::setList(QList *list) { listItems = list; } int TPreviewPanel::zoomInOut(bool in) { if(in) // then zoom { this->scale(2, 2); currentZoom = currentZoom * 2; return (int)(currentZoom * 100); } else // then unzoom { this->scale(0.5, 0.5); currentZoom = currentZoom * 0.5; return (int)(currentZoom * 100); } } void TPreviewPanel::S_ZoomInOut() { if(sender() == zoomInAct) { zoomInOut(true); } if(sender() == zoomOutAct) { zoomInOut(false); } } TPreviewPanel::~TPreviewPanel(void) { } bool TPreviewPanel::saveToFile(QString path) { QImage image((int)scene->width(), (int)scene->height(), QImage::Format_ARGB32); image.fill(0); QPainter painter(&image); scene->render(&painter); if(image.save(path, 0, quality)) // wrote or not return true; else return false; } void TPreviewPanel::print(QPrinter &printer) { QPainter painter(&printer); scene->render(&painter); } void TPreviewPanel::removeAll() { qDeleteAll(*graphItems); graphItems->clear(); graphItems = NULL; listItems = NULL; graphItems = new QList(); listItems = new QList(); scene = NULL; scene = new QGraphicsScene(this); isOpen = false; this->setScene(tempScene); } void TPreviewPanel::deleteItem(int index) { if(graphItems->count() > 0) { scene->removeItem(graphItems->at(index)); graphItems->removeAt(index); adjustItems(); } } void TPreviewPanel::setItemTextPos(uint textPos) { for(int i = 0; i < graphItems->count(); i++) { graphItems->at(i)->setItemTextPos(textPos); } } void TPreviewPanel::autoRedraw(bool autoRedraw) { this->autoredraw = autoRedraw; } void TPreviewPanel::setOffset(uint offset) { this->offset = offset; if(autoredraw) this->adjustItems(); } void TPreviewPanel::setOffsetValue(uint offset) { this->offset = offset; } void TPreviewPanel::setSpace(uint space) { this->space = space; if(autoredraw) this->adjustItems(); } void TPreviewPanel::setSpaceValue(uint space) { this->space = space; } void TPreviewPanel::setScale(qreal scale) { this->h_proc = scale; for(int i = 0; i < graphItems->count(); i++) { graphItems->at(i)->scale(scale); } } void TPreviewPanel::setScaleValue(qreal h_proc) { this->h_proc = h_proc; } void TPreviewPanel::setQuality(int quality) { this->quality = quality; } void TPreviewPanel::setBackgroundColor(QColor &color) { backgroundRect->setColor(color); } void TPreviewPanel::setBackgroundColorValue(QColor colorBackground) { this->colorBackground = colorBackground; } void TPreviewPanel::setCountHor(uint hor_count) { this->hor_count = hor_count; } void TPreviewPanel::setfontMetaInfo(QFont fontMetaInfo) { this->fontMetaInfo = fontMetaInfo; } void TPreviewPanel::setColorInfoText(QColor colorInfoText) { this->colorInfoText = colorInfoText; } void TPreviewPanel::setColorInfoInfo(QColor colorInfoInfo) { this->colorInfoInfo = colorInfoInfo; } uint TPreviewPanel::getOffset() { return offset; } uint TPreviewPanel::getSpace() { return space; } qreal TPreviewPanel::getScale() { return h_proc; } int TPreviewPanel::getItemStyle() { return style; } QColor TPreviewPanel::getBackgroundColor() { return backgroundRect->getColor(); } videocut-0.2.0.orig/src/TPreviewPanel/TLogo.h0000644000175000017500000000256310747076404020446 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TLOGO_H_ #define _TLOGO_H_ #include #include #include #include class TLogo : public QGraphicsSvgItem { public: TLogo(); void setSize(QRect); void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget); private: QSvgRenderer *renderer; qreal w_scale; qreal h_scale; }; #endif videocut-0.2.0.orig/src/TPreviewPanel/TLogo.cpp0000644000175000017500000000337210747076401020775 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TLogo.h" TLogo::TLogo() { renderer = new QSvgRenderer(QLatin1String(":/img/logo_gray.svg")); this->setSharedRenderer(renderer); w_scale = 1.0; h_scale = 1.0; } void TLogo::setSize(QRect bound) { qreal w_new = (qreal)bound.width() / (qreal)renderer->defaultSize().width(); qreal h_new = (qreal)bound.height() / (qreal)renderer->defaultSize().height(); qreal to_one_w = 1.0 / w_scale; qreal to_one_h = 1.0 / h_scale; this->scale(to_one_w * w_new, to_one_h * h_new); this->setPos(bound.x(), bound.y()); w_scale = w_new; h_scale = h_new; } void TLogo::paint(QPainter * painter, const QStyleOptionGraphicsItem* option, QWidget* widget) { painter->setOpacity(0.2); QGraphicsSvgItem::paint(painter, option, widget); painter->setOpacity(1.0); } videocut-0.2.0.orig/src/TPreviewPanel/TGraphItem.cpp0000755000175000017500000001263210747076372021766 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TGraphItem.h" TGraphItem::TGraphItem(QImage &p, int style, qreal scale, QString timeText) { this->p = &p; this->timeText = timeText; // timeistamp this->h_s = (int)(this->p->height() * scale); this->w_s = this->p->width() * h_s / this->p->height(); this->style = style; //set style of paint this->textPos = 0; shadowSize = 7; tmst_offset = 4; boundRect = QRectF(0 , 0, w_s, h_s); // result rect realPixRect = QRectF(0, 0, p.width(), p.height()); // real size of pixmap shadowPen = QPen(QColor(10, 10, 10, 0), -1); timeFont = QFont(); timeFont.setBold(true); switch(this->style) { case 0: { shadowSize = 7; pix_h = h_s - shadowSize; pix_w = this->p->width() * h_s / this->p->height() - shadowSize; pixRect = QRectF(0 ,0, pix_w, pix_h); break; } case 1: { pixRect = QRectF(0, 0, w_s, h_s); break; } } adjustTimestamps(); } void TGraphItem::setStyle(int style) { this->style = style; switch(this->style) { case 0: { //shadowSize = 7; pix_h = (int)(boundingRect().height() - shadowSize); pix_w = this->p->width() * (int)boundingRect().height() / this->p->height() - shadowSize; pixRect = QRectF(0 ,0, pix_w, pix_h); break; } case 1: { pixRect = QRectF(0, 0, w_s, h_s); break; } } adjustTimestamps(); this->prepareGeometryChange(); } void TGraphItem::scale(qreal scale) { this->h_s = (int)(this->p->height() * scale); this->w_s = this->p->width() * h_s / this->p->height(); boundRect = QRectF(0 , 0, w_s, h_s); // result rect if(style == 0) { pix_h = (int)(boundingRect().height() - shadowSize); pix_w = p->width() * (int)boundingRect().height() / p->height() - shadowSize; pixRect = QRectF(0 ,0, pix_w, pix_h); } if(style == 1) { pixRect = boundRect; } adjustTimestamps(); this->prepareGeometryChange(); } void TGraphItem::adjustTimestamps() { switch(style) { case(0): { textRect1 = QRect(tmst_offset, tmst_offset, pix_w - tmst_offset*2, pix_h - tmst_offset*2); textRect2 = QRect(tmst_offset + 1, tmst_offset + 1, pix_w - tmst_offset*2, pix_h - tmst_offset*2); break; } case(1): { textRect1 = QRect(tmst_offset, tmst_offset, w_s - tmst_offset*2, h_s - tmst_offset*2); textRect2 = QRect(tmst_offset + 1, tmst_offset + 1, w_s - tmst_offset*2, h_s - tmst_offset*2); break; } } } QRectF TGraphItem::boundingRect() const { return boundRect; } void TGraphItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { switch (this->style) { case (0): { this->paint0(painter); break; } case (1): { this->paint1(painter); break; } } } void TGraphItem::setItemTextPos(uint textPos) { if(textPos < 4) { this->textPos = textPos; this->update(bound); } } void TGraphItem::drawTimestamps(QPainter *painter) { // set timestamps painter->setPen(QPen(QColor(20, 20, 20, 155), 1)); //painter->setBrush(QBrush(QColor(255, 255, 255, 230))); painter->setFont(timeFont); //set position of timestamps QTextOption tempOpts; switch(textPos) { case 0: { tempOpts = Qt::AlignLeft | Qt::AlignTop; break; } case 1: { tempOpts = Qt::AlignRight | Qt::AlignTop; break; } case 2: { tempOpts = Qt::AlignLeft | Qt::AlignBottom; break; } case 3: { tempOpts = Qt::AlignRight | Qt::AlignBottom; break; } } painter->drawText(textRect2, timeText, tempOpts); painter->setPen(QPen(QColor(250, 250, 250, 255), 6)); painter->drawText(textRect1, timeText, tempOpts); } void TGraphItem::paint0(QPainter *painter) //drawing first style { painter->setPen(shadowPen); painter->setRenderHint(QPainter::Antialiasing, true); uint b_w = (uint)boundRect.width(); uint b_h = (uint)boundRect.height(); for(int i = shadowSize; i >= 0; i--) { painter->setBrush(QBrush(QColor(50, 50, 50, 10 + i * 15))); painter->drawRoundRect(0, 0, b_w - i, b_h - i, 5, 5); } //painter->drawImage(pixRect, *p, realPixRect);//, Qt::AutoColor); painter->drawImage(pixRect, (*p).scaledToWidth(pixRect.width(), Qt::SmoothTransformation)); drawTimestamps(painter); } void TGraphItem::paint1(QPainter *painter) //drawing second style { painter->setRenderHint(QPainter::Antialiasing, true); painter->setBrush(QColor(0, 0, 0, 255)); painter->drawRect(pixRect); painter->drawImage(pixRect, (*p).scaledToWidth(realPixRect.width(), Qt::SmoothTransformation)); drawTimestamps(painter); } videocut-0.2.0.orig/src/TPreviewPanel/TPreviewPanel.h0000755000175000017500000000672210747076414022154 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #ifndef _TPREVIEWPANEL_H_ #define _TPREVIEWPANEL_H_ #include #include #include #include #include #include #include #include #include #include #include "TGraphItem.h" #include "TBackground.h" #include "TLogo.h" #include "../frameStruct.h" #include #include #include "../const.h" class TPreviewPanel : public QGraphicsView { Q_OBJECT public: TPreviewPanel(QWidget *parent = 0, Qt::WindowFlags f = 0); virtual ~TPreviewPanel(void); void menuInit(); void addText(QString infoText, QString infoInfo); void addLogo(); void removeLogo(); void setAtributes(int otst, qreal h_proc, int space, int hor_count, QFont, QColor, QColor, QColor); void removeAll(); void deleteItem(int index); void prepare(); int zoomInOut(bool); bool saveToFile(QString path); void print(QPrinter &); void setList(QList *); void autoRedraw(bool); void tempSceneBorn(); void createItems(); void setItemTextPos(uint); void adjustItems(); void setSceneAfter(); void setCountHor(uint); void setOffset(uint); void setOffsetValue(uint); void setSpace(uint); void setSpaceValue(uint); void setScaleValue(qreal); void setBackgroundColor(QColor &color); void setBackgroundColorValue(QColor); void setScale(qreal); void setItemsStyle(int); void setfontMetaInfo(QFont); void setColorInfoText(QColor); void setColorInfoInfo(QColor); void setQuality(int); uint getOffset(); uint getSpace(); qreal getScale(); int getItemStyle(); QColor getBackgroundColor(); private slots: void S_ZoomInOut(); protected: private: QGraphicsScene *scene; QGraphicsScene *tempScene; TBackground *backgroundRect; QGraphicsTextItem *infoText; QGraphicsTextItem *infoInfo; QList *graphItems; QPixmap *resultPix; QList *listItems; TLogo *logo; bool logo_added; int style; int currentCount; // current count of items //int countItems; // qreal h_proc; // height of item (0 - 1) int offset; // otstup int borderWidth; int space; // space between items int hor_count; // how many items on horisontal int quality; QFont fontMetaInfo; QColor colorInfoText; QColor colorInfoInfo; QColor colorBackground; int h, countItems; int infoTextHeight; // height of text (metainfo) qreal currentZoom; bool autoredraw; QAction *zoomInAct, *zoomOutAct; bool isOpen; }; #endif videocut-0.2.0.orig/src/TPreviewPanel/TBackground.cpp0000755000175000017500000000322310747076362022160 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TBackground.h" TBackground::TBackground(QRectF *bound, QColor color) { this->bound = bound; this->color = color; } QRectF TBackground::boundingRect() const { return *bound; } void TBackground::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { painter->setBrush(QBrush(color)); QPen pen(color); pen.setWidth(1); painter->setPen(pen); painter->drawRect(*bound); } void TBackground::setSize(QRectF *bound) { this->bound = bound; this->prepareGeometryChange(); } void TBackground::setColor(QColor color) { this->color = color; this->update(this->boundingRect()); } QColor TBackground::getColor() { return color; } videocut-0.2.0.orig/src/TAboutWindow.cpp0000644000175000017500000000765010747075044017617 0ustar troorltroorl/** * This file is a part of VideoCut package. * ---------------------------------------------------------------------- * Copyright (C) 2007-2008 troorl * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ---------------------------------------------------------------------- * * @author troorl */ #include "TAboutWindow.h" TAboutWindow::TAboutWindow(QWidget *parent) : QDialog(parent) { QLabel *headerLogo = new QLabel(); QPixmap pixLogo(":/img/logo.svg"); headerLogo->setPixmap(pixLogo.scaled(QSize(64, 64))); QLabel *headerName = new QLabel("" + QString(APPLICATION_NAME) + "-" + QString(VERSION) + ""); if(STATUS != "release") { headerName->setText(headerName->text() + "-" + QString(STATUS)); } headerName->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); QHBoxLayout *headerLayout = new QHBoxLayout(); headerLayout->setAlignment(Qt::AlignLeft | Qt::AlignVCenter); headerLayout->addWidget(headerLogo); headerLayout->addWidget(headerName); tabWidget = new QTabWidget(this); tabWidget->setMinimumSize(QSize(400, 300)); tab1 = new QWidget(this); tab2 = new QWidget(this); tab3 = new QWidget(this); tab4 = new QWidget(this); tabWidget->addTab(tab1, tr("About")); tabWidget->addTab(tab2, tr("Authors")); tabWidget->addTab(tab3, tr("Thanks To")); tabWidget->addTab(tab4, tr("License Agreement")); //tab1 QTextBrowser *l1 = new QTextBrowser(this); l1->setText(this->loadText(":/ABOUT")); QVBoxLayout *tab1VLayout = new QVBoxLayout(); tab1VLayout->addWidget(l1); QHBoxLayout *tab1HLayout = new QHBoxLayout(); tab1HLayout->addLayout(tab1VLayout); tab1->setLayout(tab1HLayout); //tab2 QTextBrowser *l2 = new QTextBrowser(this); l2->setText(this->loadText(":/AUTHORS")); QVBoxLayout *tab2VLayout = new QVBoxLayout(); tab2VLayout->addWidget(l2); QHBoxLayout *tab2HLayout = new QHBoxLayout(); tab2HLayout->addLayout(tab2VLayout); tab2->setLayout(tab2HLayout); //tab3 QTextBrowser *l3 = new QTextBrowser(this); l3->setText(this->loadText(":/THANKSTO")); QVBoxLayout *tab3VLayout = new QVBoxLayout(); tab3VLayout->addWidget(l3); QHBoxLayout *tab3HLayout = new QHBoxLayout(); tab3HLayout->addLayout(tab3VLayout); tab3->setLayout(tab3HLayout); //tab4 QTextBrowser *l4 = new QTextBrowser(this); l4->setText(this->loadText(":/LICENSE")); QVBoxLayout *tab4VLayout = new QVBoxLayout(); tab4VLayout->addWidget(l4); QHBoxLayout *tab4HLayout = new QHBoxLayout(); tab4HLayout->addLayout(tab4VLayout); tab4->setLayout(tab4HLayout); okButton = new QPushButton(tr("Close")); QHBoxLayout *buttonLayout = new QHBoxLayout(); buttonLayout->addStretch(1); buttonLayout->addWidget(okButton); connect(okButton, SIGNAL(clicked()), this, SLOT(accept())); QVBoxLayout *vbox = new QVBoxLayout(); vbox->addLayout(headerLayout); vbox->addWidget(tabWidget); vbox->addLayout(buttonLayout); QHBoxLayout *hbox = new QHBoxLayout(); hbox->addLayout(vbox); this->setLayout(hbox); this->setModal(true); this->setWindowTitle(tr("About " APPLICATION_NAME)); } QString TAboutWindow::loadText(QString filename) { if (!QFile::exists(filename)) return ""; QFile file(filename); if (!file.open(QFile::ReadOnly)) return ""; QByteArray data = file.readAll(); QTextCodec *codec = Qt::codecForHtml(data); return codec->toUnicode(data); } videocut-0.2.0.orig/i18n/0000755000175000017500000000000010717614417014505 5ustar troorltroorlvideocut-0.2.0.orig/i18n/videocut.ru_RU.qm0000644000175000017500000002202410747101310017703 0ustar troorltroorl~(mU+k/!~CpeK:1[6 2C#} oyl` 6 6  Q w     5 [\  G%  C s͜*  Pj   *! . _p\iJl{{K/ߺLh kϗ&ekW#AROd]*mUcA \~2 <o ] lu~n T ,*  q ) f( I46  E VO rU J % C ދ' ڎn bCN v t S: M?)`{h$·j]^ i h16 TMainWindow24 TMainWindow32 TMainWindow48 TMainWindowF1 TMainWindowOk TConfigDialog$09;File MainDialog ><>ILHelp MainDialog ?@>3@0<<5 About program TMainWindow 07<5@ D09;0 Size of file TFileInfoPage@&!>E@0=8BL 2 2845 87>1@065=89...&Save like images... TMainWindow ?@>3@0<<5About TAboutWindow@8<5=8BLApply TConfigDialog0:@KBLClose TAboutWindow0:@KBLClose TConfigDialog (@8DBKFonts TConfigDialog (@8DBKFonts TFontsPage04@Frame MainDialog$=D>@<0F8O > D09;5File information TConfigDialog$=D>@<0F8O > D09;5File information TFileInfoPage !B8;LStyle TMainWindow6;02=0O ?0=5;L 8=AB@C<5=B>2 Main toolbar TMainWindow(#40;8BL B5:CI89 :04@Delete current frame TMainWindow<O D09;0 Name of file TFileInfoPage>0AB@>9:8 8B>3>2>3> 87>1@065=8OResult picture options TMainPage0AHB01 (%)Size (%) TMainWindow"BABC? >B =0G0;0:Indentftion of start: TMainPage&B:@KBL 2845> D09;KOpen video files TMainWindow#25;8G8BLZoom in TPreviewPanel$>= Background TMainWindow@(@8DB 4;O 1;>:0 <5B0-8=D>@<0F88:Font for meta-information: TFontsPage"$09; 2 >1@01>B:5:File in progress:  TProgress&0:@KBL&Close TMainWindow0=5;L =0AB@>5: Options panel TMainWindow";02=K5 =0AB@>9:8 Main options TConfigDialogX&25B 1;>:0 <5B0-8=D>@<0F88 (2B>@0O :>;>=:0):+Color for meta-information (second column): TColorPage#40;8BL :04@ Delete frame TMainWindow ?@>3@0<<5About  TAboutWindow &25B0Colors TColorPage &25B0Colors TConfigDialogCtrl+. TMainWindowCtrl+D TMainWindowCtrl+E TMainWindowCtrl+M TMainWindowCtrl+O TMainWindowCtrl+P TMainWindowCtrl+Q TMainWindowCtrl+S TMainWindow DDA5BOffset TMainWindow>Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) TMainWindow@>AB>9Simple TMainPage !B8;L:Style: TMainPage !B8;8Styles TMainPageDDA5B:Offset: TMainPage BABC? Indentation TMainWindowN0G5AB2> 8B>3>2>3> 87>1@065=8O (0-100): Quality of result image (0-100): TMainPage Qt... About Qt... TMainWindow525@=K9 ?CBL! invalid path! TMainWindow5G0BL AF5=K Print scene TMainWindow#<5=LH8BLZoom out TPreviewPanelK1@0BL... Choose... TFontChoser&B:@KBL...&Open... TMainWindow0AB@>9:8Options MainDialog0AB@>9:8Options TMainWindowF>;8G5AB2> :04@>2 (?> 3>@87>=B0;8):Count of frames (horisontal): TMainPage >:070BL ;>3>B8? Show logo TMainPage BABC? >B :>=F0:Indentation of finish: TMainPage!>E@0=8BL :04@ Save frame TMainWindow&-:A?>@B... &Export... TMainWindow@54?@>A<>B@Preview TMainWindow2!>E@0=5=85 87>1@065=89...Saving images... TMainWindowAbout Qt framework TMainWindowLH81:0! 52>7<>6=> A>E@0=8BL MB>B D09;Error! Can't save this file TMainWindow$B:@KBL 2845> D09;Open video file TMainWindowRH81:0! 52>7<>6=> >B:@KBL D845> 4@0925@!Error! Can't open video driver! TMainWindow;03>40@=>AB8 Thanks To TAboutWindow&25B D>=0:Background color: TColorPage(5@59B8 : =0AB@>9:0< Go to options TMainWindow8(@8DB 4;O 2@5<5==KE >B<5B>::Font for timestamps: TFontsPage 2B>@KAuthors TAboutWindow$>;8G5AB2> :04@>2:Count of frames: TMainPage&5G0BL... &Print... TMainWindow,!>E@0=8BL B5:CI89 :04@Save current frame TMainWindowX&25B 1;>:0 <5B0-8=D>@<0F88 (?5@20O :>;>=:0):*Color for meta-information (first column): TColorPage ?@>3@0<<5...About... TMainWindow>7>1@065=8O (*.png *.xpm *.jpg)Images (*.png *.xpm *.jpg) TMainWindow  07@5H5=85 2845>Resolution of video TFileInfoPageZ!>E@0=8BL :04@K 2 2845 =5A:>;L:8E 87>1@065=89Save frames like many images TMainWindowLH81:0! 52>7<>6=> >B:@KBL 2845> D09;!Error! Can't open video file! TMainWindow27>1@065=8O (*.png *.jpg)Images (*.png *.jpg) TMainWindow 0=5;LToolbar MainDialog>$>@<0B 87>1@065=8O ?> C<>;G0=8NDefault image format TMainPage2BABC?K <564C M;5<5=B0<8:Indention between items: TMainPageB:@KBL D09; Open File TMainWindow8&B:@KBL =5A:>;L:> D09;>2...&Open few files... TMainWindowJ-:A?>@B :><?>78F88 2 3@0D8G5A:89 D09;'Export composition to the graphics file TMainWindow"@>4>;68B5;L=>ABLDuration TFileInfoPage"5:CI89 :04@ Current frame TMainWindow"@5<5==K5 >B<5B:8 Timestamps TMainWindow1I89 ?@>3@5AA Main progress TProgress!>E@0=5=85... Saving... TMainWindow2=D>@<0F8O > :>45:5 2845>Video codec information TFileInfoPage2=D>@<0F8O > :>45:5 0C48>Audio codec information TFileInfoPage.8F5=78>==>5 !>3;0H5=85License Agreement TAboutWindow&0AHB01 :04@>2 (%):Scale of frames (%): TMainPage"0:@KBL ?@>3@0<<C Close program TMainWindowK1>@ :0B0;>30Choose directory TMainWindow! B5=LNShadowed TMainPage 80;>3 =0AB@>9:8 Config Dialog TConfigDialogBABC?K Indentations TMainPage21@01>B:0 2845> D09;>2...Processing video files... TMainWindow01@01>B:0 2845> D09;0...Processing video file... TMainWindow ) , videocut-0.2.0.orig/i18n/videocut.ru_RU.ts0000644000175000017500000005704710747101223017734 0ustar troorltroorl MainDialog File Файл Frame Кадр Options Настройки Toolbar Панель Help Помощь TAboutWindow About О программе Authors Авторы Thanks To Благодарности License Agreement Лицензионное Соглашение Close Закрыть About О программе TColorPage Color for meta-information (first column): Цвет блока мета-информации (первая колонка): Color for meta-information (second column): Цвет блока мета-информации (вторая колонка): Background color: Цвет фона: Colors Цвета TConfigDialog Close Закрыть Apply Применить Ok Config Dialog Диалог настройки Main options Главные настройки Fonts Шрифты File information Информация о файле Colors Цвета TFileInfoPage File information Информация о файле Name of file Имя файла Size of file Размер файла Duration Продолжительность Resolution of video Разрешение видео Video codec information Информация о кодеке видео Audio codec information Информация о кодеке аудио TFontChoser Choose... Выбрать... TFontsPage Font for meta-information: Шрифт для блока мета-информации: Font for timestamps: Шрифт для временных отметок: Fonts Шрифты TMainPage Result picture options Настройки итогового изображения Count of frames: Количество кадров: Count of frames (horisontal): Количество кадров (по горизонтали): Offset: Оффсет: Indention between items: Отступы между элементами: Scale of frames (%): Масштаб кадров (%): Quality of result image (0-100): Качество итогового изображения (0-100): Indentations Отступы Indentftion of start: Отступ от начала: Indentation of finish: Отступ от конца: Styles Стили Style: Стиль: Shadowed С тенью Simple Простой Default image format Формат изображения по умолчанию Show logo Показать логотип TMainWindow Current frame Текущий кадр Preview Предпросмотр Style Стиль Timestamps Временные отметки Size (%) Масштаб (%) Offset Оффсет Indentation Отступ Background Фон &Open... &Открыть... Ctrl+O Open video file Открыть видео файл &Close &Закрыть Ctrl+Q Close program Закрыть программу &Export... &Экспорт... Ctrl+E Export composition to the graphics file Экспорт композиции в графический файл &Save like images... &Сохранить в виде изображений... Ctrl+M Save frames like many images Сохранить кадры в виде нескольких изображений &Print... &Печать... Print scene Печать сцены Delete frame Удалить кадр Ctrl+D Delete current frame Удалить текущий кадр Save frame Сохранить кадр Ctrl+S Save current frame Сохранить текущий кадр Options Настройки Ctrl+P Go to options Перейти к настройкам 16 24 32 48 About... О программе... F1 About program О программе About Qt... О Qt... About Qt framework Main toolbar Главная панель инструментов Open File Открыть файл Video (*.avi *.mpg *.wmv *.mov *.mkv);; All (*.*) Видео (*.avi *.mpg *.wmv *.mov *.mkv);; Все файлыl (*.*) invalid path! Неверный путь! Error! Can't open video driver! Ошибка! Невозможно открыть фидео драйвер! Error! Can't open video file! Ошибка! Невозможно открыть видео файл! Proceding video file... Обработка видео файла... Saving... Сохранение... Images (*.png *.jpg) Изображения (*.png *.jpg) Error! Can't save this file Ошибка! Невозможно сохранить этот файл Not enough memory! Не достаточно памяти! Images (*.png *.xpm *.jpg) Изображения (*.png *.xpm *.jpg) Choose directory Выбор каталога Saving images... Сохранение изображений... Processing video file... Обработка видео файла... Options panel Панель настроек Ctrl+. &Open few files... &Открыть несколько файлов... Open video files Открыть видео файлы Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) Processing video files... Обработка видео файлов... TPreviewPanel Zoom in Увеличить Zoom out Уменьшить TProgress Main progress Общий прогресс File in progress: Файл в обработке: videocut-0.2.0.orig/i18n/videocut.de_DE.qm0000644000175000017500000002121610717231131017613 0ustar troorltroorlAnzahl der Frames (horizontal):Count of frames (horisontal): TMainPageEinrckung:Indentation of finish: TMainPageFrame speichern Save frame TMainWindow&xportieren... &Export... TMainWindowVorschauPreview TMainWindow&Bilder speichern...Saving images... TMainWindow*ber das QT-FrameworkAbout Qt framework TMainWindowLFehler! Kann die Datei nicht speichernError! Can't save this file TMainWindow Videofilm ffnenOpen video file TMainWindowXFehler! Kann den Video-Treiber nicht ffnen!Error! Can't open video driver! TMainWindowDank an Thanks To TAboutWindow"Hintergrundfarbe:Background color: TColorPageZu den Optionen Go to options TMainWindow<Schriftart fr die Zeitmarken:Font for timestamps: TFontsPageAutorenAuthors TAboutWindow$Anzahl der Frames:Count of frames: TMainPage&Drucken... &Print... TMainWindow2Speichere aktuellen frameSave current frame TMainWindow^Farbe fr die Meta-Informatioen (Erste Spalte):*Color for meta-information (first column): TColorPageber...About... TMainWindow4Images (*.png *.xpm *.jpg)Images (*.png *.xpm *.jpg) TMainWindowViedeoauflsungResolution of video TFileInfoPageHSpeichere Frames als einzelne BilderSave frames like many images TMainWindowHFehler! Kann die Datei nicht ffnen!Error! Can't open video file! TMainWindow(Images (*.png *.jpg)Images (*.png *.jpg) TMainWindowWerkzeugleisteToolbar MainDialog@Einrckungen zwischen den Items:Indention between items: TMainPageDatei ffnen Open File TMainWindowTZusammenstellung in die Grafik axportieren'Export composition to the graphics file TMainWindowZeitdauerDuration TFileInfoPageAktueller Frame Current frame TMainWindowZeitstempel Timestamps TMainWindowSpeichern... Saving... TMainWindow.Video Codec InformationVideo codec information TFileInfoPage.Audio Codec informationAudio codec information TFileInfoPage$LizensvereinbarungLicense Agreement TAboutWindow@Grenverhltnis der Frames (%):Scale of frames (%): TMainPage Programm beenden Close program TMainWindow$Verzeichnis whlenChoose directory TMainWindowSchattiertShadowed TMainPage(Konfigurationsdialog Config Dialog TConfigDialogEinrckungen Indentations TMainPage2Videodatei verarbeiten...Processing video file... TMainWindow ) , videocut-0.2.0.orig/i18n/videocut.de_DE.ts0000644000175000017500000005651010717231124017633 0ustar troorltroorl MainDialog File Datei Frame Frame Options Optionen Toolbar Werkzeugleiste Help Hilfe TAboutWindow About Über Authors Autoren Thanks To Dank an License Agreement Lizensvereinbarung Close Schließen About Über TColorPage Color for meta-information (first column): Farbe für die Meta-Informatioen (Erste Spalte): Color for meta-information (second column): Farbe für die Meta-Informatioen (Zweite Spalte): Background color: Hintergrundfarbe: Colors Farben TConfigDialog Close Schließen Apply Anwenden Ok Ok Config Dialog Konfigurationsdialog Main options Hauptoptionen Fonts Schriftarten File information Datei Informationen Colors Farben TFileInfoPage File information Datei Informationen Name of file Dateiname Size of file Dateigröße Duration Zeitdauer Resolution of video Viedeoauflösung Video codec information Video Codec Information Audio codec information Audio Codec information TFontChoser Choose... Auswählen.... TFontsPage Font for meta-information: Schriftart für die Meta-Informationen: Font for timestamps: Schriftart für die Zeitmarken: Fonts Schriftarten TMainPage Result picture options Ergebnis der Bildeinstellungen Count of frames: Anzahl der Frames: Count of frames (horisontal): Anzahl der Frames (horizontal): Offset: Ausgleich: Indention between items: Einrückungen zwischen den Items: Scale of frames (%): Größenverhältnis der Frames (%): Quality of result image (0-100): Bildqualität des Bildes (0-100): Indentations Einrückungen Indentftion of start: Einrückung zu Beginn: Indentation of finish: Einrückung: Styles Stile Style: Stil: Shadowed Schattiert Simple Einfach TMainWindow Current frame Aktueller Frame Preview Vorschau Style Stil Timestamps Zeitstempel Size (%) Größe (%) Offset Ausgleich Indentation Einrückung Background Hintergrund &Open... &Öffnen... Ctrl+O Ctrl+O Open video file Videofilm öffnen &Close &Schließen Ctrl+Q Ctrl+Q Close program Programm beenden &Export... &Еxportieren... Ctrl+E Ctrl+E Export composition to the graphics file Zusammenstellung in die Grafik axportieren &Save like images... &Speichere als Bild... Ctrl+M Ctrl+M Save frames like many images Speichere Frames als einzelne Bilder &Print... &Drucken... Print scene Szene drucken Delete frame Frame löschen Ctrl+D Ctrl+D Delete current frame Aktuellen Frame löschen Save frame Frame speichern Ctrl+S Ctrl+S Save current frame Speichere aktuellen frame Options Optionen Ctrl+P Ctrl+P Go to options Zu den Optionen 16 16 24 24 32 32 48 48 About... Über... F1 F1 About program Über das Programm About Qt... Über Qt... About Qt framework Über das QT-Framework Main toolbar Hauptwerkzeugleiste Open File Datei öffnen Video (*.avi *.mpg *.wmv *.mov *.mkv);; All (*.*) Video (*.avi *.mpg *.wmv *.mov *.mkv);; Alle Dateien (*.*) invalid path! Ungültiger Pfad! Error! Can't open video driver! Fehler! Kann den Video-Treiber nicht öffnen! Error! Can't open video file! Fehler! Kann die Datei nicht öffnen! Proceding video file... Обробка відео файлу... Saving... Speichern... Images (*.png *.jpg) Images (*.png *.jpg) Error! Can't save this file Fehler! Kann die Datei nicht speichern Not enough memory! Не достатньо пам'яті! Images (*.png *.xpm *.jpg) Images (*.png *.xpm *.jpg) Choose directory Verzeichnis wählen Saving images... Bilder speichern... Processing video file... Videodatei verarbeiten... Options panel Einstellungsfeld Ctrl+. Ctrl+. TPreviewPanel Zoom in Heranzoomen Zoom out Herauszoomen videocut-0.2.0.orig/i18n/videocut.fr_FR.qm0000644000175000017500000002221310747101310017645 0ustar troorltroorlϗk'YW#AKRO]**mUcb \~ <' ] lu~F T , S q ) f( I4 R E V rUC  % C_ ދ ڎ bCN v t S:a M)`{h$p·j^ = vi 16 TMainWindow24 TMainWindow32 TMainWindow48 TMainWindowF1 TMainWindowOk TConfigDialogFichierFile MainDialogAideHelp MainDialog*A propos du programme About program TMainWindow"Taille du fichier Size of file TFileInfoPageB&Sauvegarder en tant qu'images...&Save like images... TMainWindowA proposAbout TAboutWindowAppliquerApply TConfigDialog FermerClose TAboutWindow FermerClose TConfigDialogPolicesFonts TConfigDialogPolicesFonts TFontsPage ImageFrame MainDialog6Informations sur le fichierFile information TConfigDialog6Informations sur le fichierFile information TFileInfoPage StyleStyle TMainWindow2Barre d'outils principale Main toolbar TMainWindow0Effacer l'image couranteDelete current frame TMainWindowNom du fichier Name of file TFileInfoPage>Options pour l'image rsultanteResult picture options TMainPageTaille (%)Size (%) TMainWindow,Indentation de dpart:Indentftion of start: TMainPageOpen video files TMainWindowZoom avantZoom in TPreviewPanelArrire-plan Background TMainWindowDPolice pour les meta-informations:Font for meta-information: TFontsPageFile in progress:  TProgress&Fermer&Close TMainWindow Options panel TMainWindow&Options principales Main options TConfigDialoglCouleur pour les meta-informations (deuxime colonne):+Color for meta-information (second column): TColorPage"Effacer une image Delete frame TMainWindowA propos About  TAboutWindowCouleursColors TColorPageCouleursColors TConfigDialogCtrl+. TMainWindowCtrl+D TMainWindowCtrl+E TMainWindowCtrl+M TMainWindowCtrl+O TMainWindowCtrl+P TMainWindowCtrl+Q TMainWindowCtrl+S TMainWindowDcalageOffset TMainWindow>Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) TMainWindow SimpleSimple TMainPage Style:Style: TMainPage StylesStyles TMainPageDcalage:Offset: TMainPageIndentation Indentation TMainWindowLQualit de l'image rsultante (0-100): Quality of result image (0-100): TMainPage"A propos de Qt... About Qt... TMainWindow2Chemin d'accs invalide ! invalid path! TMainWindowImprime l'image Print scene TMainWindowZoom arrireZoom out TPreviewPanelChoisissez... Choose... TFontChoser&Ouvrir...&Open... TMainWindowOptionsOptions MainDialogOptionsOptions TMainWindow:Nombre d'images (horizontal):Count of frames (horisontal): TMainPage Show logo TMainPage&Indentation de fin:Indentation of finish: TMainPage&Sauvegarder l'image Save frame TMainWindow&Exporter... &Export... TMainWindow PrvisualisationPreview TMainWindow0Sauvegarde des images...Saving images... TMainWindowAbout Qt framework TMainWindowZErreur ! Impossible de sauvegarder le fichierError! Can't save this file TMainWindow.Ouvrir un fichier videoOpen video file TMainWindowZErreur ! Impossible d'ouvrir le driver video!Error! Can't open video driver! TMainWindowRemerciement  Thanks To TAboutWindow.Couleur d'arrire-plan:Background color: TColorPage2Configuration des options Go to options TMainWindowHPolice pour les marqueurs temporels:Font for timestamps: TFontsPageAuteursAuthors TAboutWindow Nombre d'images:Count of frames: TMainPage&Imprimer... &Print... TMainWindow8Sauvegardez l'image couranteSave current frame TMainWindowlCouleur pour les meta-informations (premire colonne):*Color for meta-information (first column): TColorPageA propos...About... TMainWindow4Images (*.png *.xpm *.jpg)Images (*.png *.xpm *.jpg) TMainWindow,Rsolution de la videoResolution of video TFileInfoPageXSauvez les images en tant qu'images sparesSave frames like many images TMainWindow^Erreur ! Impossible d'ouvrir le fichier video !Error! Can't open video file! TMainWindow(Images (*.png *.jpg)Images (*.png *.jpg) TMainWindowBarre d'outilsToolbar MainDialogDefault image format TMainPage>Indentation entre les lments:Indention between items: TMainPage"Ouvrir un fichier Open File TMainWindow&Open few files... TMainWindowXExporter la compostion dans un fichier image'Export composition to the graphics file TMainWindow DureDuration TFileInfoPageImage courante Current frame TMainWindow&Marqueurs temporels Timestamps TMainWindow Main progress TProgressSauvegarde... Saving... TMainWindow>Informations sur le codec videoVideo codec information TFileInfoPage>Informations sur le codec audioAudio codec information TFileInfoPage$Accords de licenceLicense Agreement TAboutWindow.Echelle des images (%):Scale of frames (%): TMainPage(Quitter le programme Close program TMainWindow*Choisir un rpertoireChoose directory TMainWindow OmbrShadowed TMainPage,Ecran de configuration Config Dialog TConfigDialogIndentations Indentations TMainPageProcessing video files... TMainWindow<Traitement du fichier video...Processing video file... TMainWindowvideocut-0.2.0.orig/i18n/videocut.fr_FR.ts0000644000175000017500000005446010747100624017676 0ustar troorltroorl MainDialog File Fichier Frame Image Options Options Toolbar Barre d'outils Help Aide TAboutWindow About A propos Authors Auteurs Thanks To Remerciement à License Agreement Accords de licence Close Fermer About A propos TColorPage Color for meta-information (first column): Couleur pour les meta-informations (première colonne): Color for meta-information (second column): Couleur pour les meta-informations (deuxième colonne): Background color: Couleur d'arrière-plan: Colors Couleurs TConfigDialog Close Fermer Apply Appliquer Ok Config Dialog Ecran de configuration Main options Options principales Fonts Polices File information Informations sur le fichier Colors Couleurs TFileInfoPage File information Informations sur le fichier Name of file Nom du fichier Size of file Taille du fichier Duration Durée Resolution of video Résolution de la video Video codec information Informations sur le codec video Audio codec information Informations sur le codec audio TFontChoser Choose... Choisissez... TFontsPage Font for meta-information: Police pour les meta-informations: Font for timestamps: Police pour les marqueurs temporels: Fonts Polices TMainPage Result picture options Options pour l'image résultante Count of frames: Nombre d'images: Count of frames (horisontal): Nombre d'images (horizontal): Offset: Décalage: Indention between items: Indentation entre les éléments: Scale of frames (%): Echelle des images (%): Quality of result image (0-100): Qualité de l'image résultante (0-100): Indentations Indentations Indentftion of start: Indentation de départ: Indentation of finish: Indentation de fin: Styles Styles Style: Style: Shadowed Ombré Simple Simple Default image format Show logo TMainWindow Current frame Image courante Preview Prévisualisation Style Style Timestamps Marqueurs temporels Size (%) Taille (%) Offset Décalage Indentation Indentation Background Arrière-plan &Open... &Ouvrir... Ctrl+O Open video file Ouvrir un fichier video &Close &Fermer Ctrl+Q Close program Quitter le programme &Export... &Exporter... Ctrl+E Export composition to the graphics file Exporter la compostion dans un fichier image &Save like images... &Sauvegarder en tant qu'images... Ctrl+M Save frames like many images Sauvez les images en tant qu'images séparées &Print... &Imprimer... Print scene Imprime l'image Delete frame Effacer une image Ctrl+D Delete current frame Effacer l'image courante Save frame Sauvegarder l'image Ctrl+S Save current frame Sauvegardez l'image courante Options Options Ctrl+P Go to options Configuration des options 16 24 32 48 About... A propos... F1 About program A propos du programme About Qt... A propos de Qt... About Qt framework Main toolbar Barre d'outils principale Open File Ouvrir un fichier Video (*.avi *.mpg *.wmv *.mov *.mkv);; All (*.*) Video (*.avi *.mpg *.wmv *.mov *.mkv);; Tous les fichiers (*.*) invalid path! Chemin d'accès invalide ! Error! Can't open video driver! Erreur ! Impossible d'ouvrir le driver video! Error! Can't open video file! Erreur ! Impossible d'ouvrir le fichier video ! Proceding video file... Traitement du fichier video... Saving... Sauvegarde... Images (*.png *.jpg) Images (*.png *.jpg) Error! Can't save this file Erreur ! Impossible de sauvegarder le fichier Not enough memory! Pas assez de mémoire ! Images (*.png *.xpm *.jpg) Images (*.png *.xpm *.jpg) Choose directory Choisir un répertoire Saving images... Sauvegarde des images... Processing video file... Traitement du fichier video... Options panel Ctrl+. &Open few files... Open video files Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) Processing video files... TPreviewPanel Zoom in Zoom avant Zoom out Zoom arrière TProgress Main progress File in progress: videocut-0.2.0.orig/i18n/videocut.uk_UA.qm0000644000175000017500000002143410747101310017657 0ustar troorltroorliJxl{{3r/ߺh pkϗAkWT#ARO<]*rmUcz \~ <7 ] lu~> T , M q )h f( I4 0 E V rU  % C ދg ڎ bCN vJ t S:! My)`{h$·Fj^ ip16 TMainWindow24 TMainWindow32 TMainWindow48 TMainWindowF1 TMainWindowOk TConfigDialog$09;File MainDialog>?><>30Help MainDialog@> ?@>3@0<C About program TMainWindow >7<V@ D09;C Size of file TFileInfoPage@&15@53B8 C 283;O4V 7>1@065=L...&Save like images... TMainWindow@> ?@>3@0<CAbout TAboutWindow0AB>AC20B8Apply TConfigDialog0:@8B8Close TAboutWindow0:@8B8Close TConfigDialog (@8DB8Fonts TConfigDialog (@8DB8Fonts TFontsPage04@Frame MainDialog&=D>@<0FVO ?@> D09;File information TConfigDialog&=D>@<0FVO ?@> D09;File information TFileInfoPage !B8;LStyle TMainWindow6>;>2=0 ?0=5;L V=AB@C<5=BV2 Main toolbar TMainWindow0840;8B8 284V;5==89 :04@Delete current frame TMainWindow<'O D09;C Name of file TFileInfoPageJ0;0HBC20==O @57C;LBCNG>3> 7>1@065==OResult picture options TMainPage0AHB01 (%)Size (%) TMainWindow(V4ABC? 2V4 ?>G0B:C:Indentftion of start: TMainPageOpen video files TMainWindow1V;LH8B8Zoom in TPreviewPanel$>= Background TMainWindow@(@8DB 4;O 1;>:C <5B0-V=D>@<0FVW:Font for meta-information: TFontsPageFile in progress:  TProgress&0:@8B8&Close TMainWindow Options panel TMainWindow(>;>2=V =0;0HBC20==O Main options TConfigDialog\>;V@ 1;>:C <5B0-V=D>@<0FVW (4@C389 AB>2?G8:):+Color for meta-information (second column): TColorPage840;8B8 :04@ Delete frame TMainWindow@> ?@>3@0<CAbout  TAboutWindow>;L>@8Colors TColorPage>;L>@8Colors TConfigDialogCtrl+. TMainWindowCtrl+D TMainWindowCtrl+E TMainWindowCtrl+M TMainWindowCtrl+O TMainWindowCtrl+P TMainWindowCtrl+Q TMainWindowCtrl+S TMainWindow DDA5BOffset TMainWindow>Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) TMainWindow@>AB89Simple TMainPage !B8;L:Style: TMainPage !B8;VStyles TMainPageDDA5B:Offset: TMainPageV4ABC? Indentation TMainWindowP/:VABL @57C;LBCNG>3> 7>1@065==O (0-100): Quality of result image (0-100): TMainPage@> Qt... About Qt... TMainWindow5 2V@=89 H;OE! invalid path! TMainWindow@C: AF5=8 Print scene TMainWindow<5=H8B8Zoom out TPreviewPanelK1@0B8... Choose... TFontChoser&V4:@8B8...&Open... TMainWindow0;0HBC20==OOptions MainDialog0;0HBC20==OOptions TMainWindowDV;L:VABL :04@V2 (?> 3>@87>=B0;V):Count of frames (horisontal): TMainPage Show logo TMainPage$V4ABC? 2V4 :V=FO:Indentation of finish: TMainPage15@53B8 :04@ Save frame TMainWindow&:A?>@B... &Export... TMainWindow&>?5@54=V9 ?5@53;O4Preview TMainWindow.15@565==O 7>1@065=L...Saving images... TMainWindowAbout Qt framework TMainWindowH><8;:0! 5<>6;82> 715@53B8 F59 D09;Error! Can't save this file TMainWindow&V4:@8B8 2V45> D09;Open video file TMainWindowT><8;:0! 5<>6;82> 2V4:@8B8 2V45> 4@0925@!Error! Can't open video driver! TMainWindow >4O:8 Thanks To TAboutWindow>;V@ D>=C:Background color: TColorPage,5@59B8 4> =0;0HBC20=L Go to options TMainWindow6(@8DB 4;O G0A>28E 2V4<VB>::Font for timestamps: TFontsPage 2B>@8Authors TAboutWindow"V;L:VABL :04@V2:Count of frames: TMainPage&@C:... &Print... TMainWindow015@53B8 284V;5==89 :04@Save current frame TMainWindow\>;V@ 1;>:C <5B0-V=D>@<0FVW (?5@H89 AB>2?G8:):*Color for meta-information (first column): TColorPage@> ?@>3@0<C...About... TMainWindow<>1@065==O (*.png *.xpm *.jpg)Images (*.png *.xpm *.jpg) TMainWindow 57>;NFVO 2V45>Resolution of video TFileInfoPageT15@53B8 :04@8 C 283;O4V :V;L:>E 7>1@065=LSave frames like many images TMainWindowN><8;:0! 5<>6;82> 2V4:@8B8 2V45> D09;!Error! Can't open video file! TMainWindow0>1@065==O (*.png *.jpg)Images (*.png *.jpg) TMainWindow 0=5;LToolbar MainDialogDefault image format TMainPage0V4ABC?8 <V6 5;5<5=B0<8:Indention between items: TMainPageV4:@8B8 D09; Open File TMainWindow&Open few files... TMainWindowF:A?>@B :><?>78FVW 2 3@0DVG=89 D09;'Export composition to the graphics file TMainWindow"@820;VABLDuration TFileInfoPage84V;5=89 :04@ Current frame TMainWindow'0A>2V 2V4<VB:8 Timestamps TMainWindow Main progress TProgress15@565==O... Saving... TMainWindow<=D>@<0FVO ?@> :>45: 4;O 2V45>Video codec information TFileInfoPage<=D>@<0FVO ?@> :>45: 4;O 0C4V>Audio codec information TFileInfoPage0VF5=7V9=V C73>465==>ABVLicense Agreement TAboutWindow&0AHB01 :04@V2 (%):Scale of frames (%): TMainPage 0:@8B8 ?@>3@0<C Close program TMainWindow81V@ :0B0;>3CChoose directory TMainWindow BV==NShadowed TMainPage$V0;>3 =0;0HBC20=L Config Dialog TConfigDialogV4ABC?8 Indentations TMainPageProcessing video files... TMainWindow,1@>1:0 2V45> D09;C...Processing video file... TMainWindow ) , videocut-0.2.0.orig/i18n/videocut.uk_UA.ts0000644000175000017500000005644210747100624017706 0ustar troorltroorl MainDialog File Файл Frame Кадр Options Налаштування Toolbar Панель Help Допомога TAboutWindow About Про програму Authors Автори Thanks To Подяки License Agreement Ліцензійні узгодженності Close Закрити About Про програму TColorPage Color for meta-information (first column): Колір блоку мета-інформації (перший стовпчик): Color for meta-information (second column): Колір блоку мета-інформації (другий стовпчик): Background color: Колір фону: Colors Кольори TConfigDialog Close Закрити Apply Застосувати Ok Config Dialog Діалог налаштувань Main options Головні налаштування Fonts Шрифти File information Інформація про файл Colors Кольори TFileInfoPage File information Інформація про файл Name of file Ім'я файлу Size of file Розмір файлу Duration Тривалість Resolution of video Резолюція відео Video codec information Інформація про кодек для відео Audio codec information Інформація про кодек для аудіо TFontChoser Choose... Выбрати... TFontsPage Font for meta-information: Шрифт для блоку мета-інформації: Font for timestamps: Шрифт для часових відміток: Fonts Шрифти TMainPage Result picture options Налаштування результуючого зображення Count of frames: Кількість кадрів: Count of frames (horisontal): Кількість кадрів (по горизонталі): Offset: Оффсет: Indention between items: Відступи між елементами: Scale of frames (%): Масштаб кадрів (%): Quality of result image (0-100): Якість результуючого зображення (0-100): Indentations Відступи Indentftion of start: Відступ від початку: Indentation of finish: Відступ від кінця: Styles Стилі Style: Стиль: Shadowed З тінню Simple Простий Default image format Show logo TMainWindow Current frame Виділений кадр Preview Попередній перегляд Style Стиль Timestamps Часові відмітки Size (%) Масштаб (%) Offset Оффсет Indentation Відступ Background Фон &Open... &Відкрити... Ctrl+O Open video file Відкрити відео файл &Close &Закрити Ctrl+Q Close program Закрити програму &Export... &Експорт... Ctrl+E Export composition to the graphics file Експорт композиції в графічний файл &Save like images... &Зберегти у вигляді зображень... Ctrl+M Save frames like many images Зберегти кадри у вигляді кількох зображень &Print... &Друк... Print scene Друк сцени Delete frame Видалити кадр Ctrl+D Delete current frame Видалити виділенний кадр Save frame Зберегти кадр Ctrl+S Save current frame Зберегти виділенний кадр Options Налаштування Ctrl+P Go to options Перейти до налаштувань 16 24 32 48 About... Про програму... F1 About program Про програму About Qt... Про Qt... About Qt framework Main toolbar Головна панель інструментів Open File Відкрити файл Video (*.avi *.mpg *.wmv *.mov *.mkv);; All (*.*) Відео (*.avi *.mpg *.wmv *.mov *.mkv);; Всі файли (*.*) invalid path! Не вірний шлях! Error! Can't open video driver! Помилка! Неможливо відкрити відео драйвер! Error! Can't open video file! Помилка! Неможливо відкрити відео файл! Proceding video file... Обробка відео файлу... Saving... Збереження... Images (*.png *.jpg) Зображення (*.png *.jpg) Error! Can't save this file Помилка! Неможливо зберегти цей файл Not enough memory! Не достатньо пам'яті! Images (*.png *.xpm *.jpg) Зображення (*.png *.xpm *.jpg) Choose directory Вибір каталогу Saving images... Збереження зображень... Processing video file... Обробка відео файлу... Options panel Ctrl+. &Open few files... Open video files Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) Processing video files... TPreviewPanel Zoom in Збільшити Zoom out Зменшити TProgress Main progress File in progress: videocut-0.2.0.orig/i18n/videocut.pl_PL.qm0000644000175000017500000001265210651117562017675 0ustar troorltroorlE@0=8BL 2 2845 87>1@065=89...G\ programieGZatwierdzHw9Zamknij TAboutWindowJ6ZamknijJ6CzcionkiTConfigDialogMeCzcionkiMe KlatkaM5$Informacja o plikuTConfigDialogT3$Informacja o plikuT3StylZ%*GBwny panel narzdzi~(&UsuD bie|c klatkNazwa plikuU.Opcje uzyskanego obrazuRozmiar (%)/"Pocztek wcicia:!Zoom takeTBo:Czcionka dla meta informacji:K:&Zamknij6Panel opcji GBwne opcjeC#LKolor meta informacji (druga kolumna):UsuD klatkpWideo (*.avi *.mpg *.wmv *.mov *.mkv);; A5 D09;Kl (*.*)W}9 programieyl` Kolory TColorPage6 Kolory6 Ctrl+. Ctrl+D Ctrl+E Ctrl+M Ctrl+O Ctrl+P Ctrl+Q Ctrl+S Offset\ ProstyG% Styl: StyleOffset:͜*WcicieBJako[ obrazu wynikowego (0-100):Pj Qt... BBdna [cie|ka!*!Drukuj scen. Zoom nie_pWybierz...iJ&twrz...l OPcje MainDialog{ Opcje{0Liczba klatek (poziomo):Koniec wcicia:ߺZapisz klatkh &Eksportuj...kPodgldϗ*Zapisywanie obrazu...O Qt frameworkkDBBd! Nie mo|na zapisa tego pliku"Otwrz plik wideoWTBBd! Nie mo|na otworzy sterownika wideo!#APodzikowaniaROKolor tBa:]* Przejdz do opcjimUc0Czcionka dla timestamps:AutorzyLiczba klatek:&Drukuj... \~*Zapisz bie|c klatk <RKolor meta informacji (pierwsza kolumna): ] programie... lu~4Obrazy (*.png *.xpm *.jpg) T&Rozdzielczo[ wideo ,Z!>E@0=8BL :04@K 2 2845 =5A:>;L:8E 87>1@065=89 JBBd! Nie mo|na otworzy pliku wideo! q(Obrazy (*.png *.jpg) )Pasek narzdzi f(0Akapit midzy pozycjami: Otwrz plik EJ-:A?>@B :><?>78F88 2 3@0D8G5A:89 D09; rUPrzedziaB Bie|ca klatka %Timestamps CZapisywanie... ڎ2Informacja o kodeku wideo bCN2Informacja o kodeku audio v Umowa licencyjna t,Skalowanie klatek (%): S:Zamknij program MWybierz katalog)`Z cieniem{h$&Dialog konfiguracji·Wciciaj8Przetwarzanie pliku wideo.../ #*28@ TFileInfoPage TFontsPage TColorPage TFontChoser TMainWindow TAboutWindow TPreviewPanel TMainPage TConfigDialog MainDialogvideocut-0.2.0.orig/i18n/videocut.pl_PL.ts0000644000175000017500000003231210651117567017706 0ustar troorltroorl MainDialog File Plik Frame Klatka Options OPcje Toolbar Pasek narzędzi Help Pomoc TAboutWindow About О programie Authors Autorzy Thanks To Podziękowania License Agreement Umowa licencyjna Close Zamknij About О programie TColorPage Color for meta-information (first column): Kolor meta informacji (pierwsza kolumna): Color for meta-information (second column): Kolor meta informacji (druga kolumna): Background color: Kolor tła: Colors Kolory TConfigDialog Close Zamknij Apply Zatwierdź Ok Ok Config Dialog Dialog konfiguracji Main options Główne opcje Fonts Czcionki File information Informacja o pliku Colors Kolory TFileInfoPage File information Informacja o pliku Name of file Nazwa pliku Size of file Rozmiar pliku Duration Przedział Resolution of video Rozdzielczość wideo Video codec information Informacja o kodeku wideo Audio codec information Informacja o kodeku audio TFontChoser Choose... Wybierz... TFontsPage Font for meta-information: Czcionka dla meta informacji: Font for timestamps: Czcionka dla timestamps: Fonts Czcionki TMainPage Result picture options Opcje uzyskanego obrazu Count of frames: Liczba klatek: Count of frames (horisontal): Liczba klatek (poziomo): Offset: Offset: Indention between items: Akapit między pozycjami: Scale of frames (%): Skalowanie klatek (%): Quality of result image (0-100): Jakość obrazu wynikowego (0-100): Indentations Wcięcia Indentftion of start: Początek wcięcia: Indentation of finish: Koniec wcięcia: Styles Style Style: Styl: Shadowed Z cieniem Simple Prosty TMainWindow Current frame Bieżąca klatka Preview Podgląd Style Styl Timestamps Timestamps Size (%) Rozmiar (%) Offset Offset Indentation Wcięcie Background Tło &Open... &Оtwórz... Ctrl+O Ctrl+O Open video file Otwórz plik wideo &Close &Zamknij Ctrl+Q Ctrl+Q Close program Zamknij program &Export... &Eksportuj... Ctrl+E Ctrl+E Export composition to the graphics file Экспорт композиции в графический файл &Save like images... &Сохранить в виде изображений... Ctrl+M Ctrl+M Save frames like many images Сохранить кадры в виде нескольких изображений &Print... &Drukuj... Print scene Drukuj scenę Delete frame Usuń klatkę Ctrl+D Ctrl+D Delete current frame Usuń bieżącą klatkę Save frame Zapisz klatkę Ctrl+S Ctrl+S Save current frame Zapisz bieżącą klatkę Options Opcje Ctrl+P Ctrl+P Go to options Przejdź do opcji 16 16 24 24 32 32 48 48 About... О programie... F1 F1 About program О programie About Qt... О Qt... About Qt framework O Qt framework Main toolbar Główny panel narzędzi Open File Otwórz plik Video (*.avi *.mpg *.wmv *.mov *.mkv);; All (*.*) Wideo (*.avi *.mpg *.wmv *.mov *.mkv);; Все файлыl (*.*) invalid path! Błędna ścieżka! Error! Can't open video driver! Błąd! Nie można otworzyć sterownika wideo! Error! Can't open video file! Błąd! Nie można otworzyć pliku wideo! Proceding video file... Обработка видео файла... Saving... Zapisywanie... Images (*.png *.jpg) Obrazy (*.png *.jpg) Error! Can't save this file Błąd! Nie można zapisać tego pliku Not enough memory! Не достаточно памяти! Images (*.png *.xpm *.jpg) Obrazy (*.png *.xpm *.jpg) Choose directory Wybierz katalog Saving images... Zapisywanie obrazu... Processing video file... Przetwarzanie pliku wideo... Options panel Panel opcji Ctrl+. Ctrl+. TPreviewPanel Zoom in Zoom tak Zoom out Zoom nie videocut-0.2.0.orig/i18n/videocut.zh_CN.qm0000644000175000017500000001555610747101310017664 0ustar troorltroorlY'Zoom in TPreviewPanelfo Background TMainWindowdXO`o[WOS:Font for meta-information: TFontsPageFile in progress:  TProgress&Qs&Close TMainWindow Options panel TMainWindowN; y Main options TConfigDialogdXO`oMr({,Nh):+Color for meta-information (second column): TColorPageR dVrG Delete frame TMainWindowQsNAbout  TAboutWindowMrColors TColorPageMrColors TConfigDialogCtrl+. TMainWindowCtrl+D TMainWindowCtrl+E TMainWindowCtrl+M TMainWindowCtrl+O TMainWindowCtrl+P TMainWindowCtrl+Q TMainWindowCtrl+S TMainWindowPOyOffset TMainWindow>Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) TMainWindow{mSimple TMainPageh7_:Style: TMainPageh7_Styles TMainPagePOy:Offset: TMainPage Indentation TMainWindow ubVrGv( (0-100): Quality of result image (0-100): TMainPageQsNQt... About Qt... TMainWindow _N Su(! invalid path! TMainWindowbSSp Print scene TMainWindow)\Zoom out TPreviewPanel b... Choose... TFontChoser &bS_...&Open... TMainWindow yOptions MainDialog yOptions TMainWindowVrGep(l4^seT):Count of frames (horisontal): TMainPage Show logo TMainPage ~g_v:Indentation of finish: TMainPageO[XVrG Save frame TMainWindow &[Q... &Export... TMainWindowPreview TMainWindowO[XVrG...Saving images... TMainWindowAbout Qt framework TMainWindowQs N O[XN*eNError! Can't save this file TMainWindow bS_ƘeNOpen video file TMainWindowQs N bS_ƘqR!Error! Can't open video driver! TMainWindow" Thanks To TAboutWindow foMr:Background color: TColorPage y Go to options TMainWindow eb3[WOS:Font for timestamps: TFontsPageO\Authors TAboutWindow VrGep:Count of frames: TMainPage &bSSp... &Print... TMainWindow O[X_SRMVrGSave current frame TMainWindowdXO`oMr({,Nh):*Color for meta-information (first column): TColorPage QsN...About... TMainWindow,VrG (*.png *.xpm *.jpg)Images (*.png *.xpm *.jpg) TMainWindow ƘRsResolution of video TFileInfoPageO[XN:Y_ VrGSave frames like many images TMainWindowQs N bS_ƘeN!Error! Can't open video file! TMainWindow VrG (*.png *.jpg)Images (*.png *.jpg) TMainWindow]QwhToolbar MainDialogDefault image format TMainPage VrG:Indention between items: TMainPagebS_eN Open File TMainWindow&Open few files... TMainWindowNExport composition to the graphics file'Export composition to the graphics file TMainWindowƘ^Duration TFileInfoPage_SRMVrG Current frame TMainWindoweOMn Timestamps TMainWindow Main progress TProgress O[X... Saving... TMainWindow ƘxVhVideo codec information TFileInfoPage 󘑉xVhAudio codec information TFileInfoPageSLicense Agreement TAboutWindowVrG)e>kO (%):Scale of frames (%): TMainPageQ Close program TMainWindow bv_UChoose directory TMainWindow4_qShadowed TMainPage Mn[hF Config Dialog TConfigDialogƘ Indentations TMainPageProcessing video files... TMainWindowkcW(YtƘeN...Processing video file... TMainWindow ) , videocut-0.2.0.orig/i18n/videocut.zh_CN.ts0000644000175000017500000005325510747100624017702 0ustar troorltroorl MainDialog File 文件 Frame 图片 Options 选项 Toolbar 工具栏 Help 帮助 TAboutWindow About 关于 Authors 作者 Thanks To 致谢 License Agreement 许可 Close 关闭 About 关于 TColorPage Color for meta-information (first column): 摘要信息配色(第一栏): Color for meta-information (second column): 摘要信息配色(第二栏): Background color: 背景配色: Colors 配色 TConfigDialog Close 关闭 Apply 应用 Ok 确定 Config Dialog 配置对话框 Main options 主要选项 Fonts 字体 File information 文件信息 Colors 配色 TFileInfoPage File information 文件信息 Name of file 文件名 Size of file 文件尺寸 Duration 视频长度 Resolution of video 视频分辨率 Video codec information 视频解码器 Audio codec information 音频解码器 TFontChoser Choose... 选择... TFontsPage Font for meta-information: 摘要信息字体: Font for timestamps: 时间戳字体: Fonts 字体 TMainPage Result picture options 生成图片选项 Count of frames: 图片数量: Count of frames (horisontal): 图片数量(水平方向): Offset: 偏移: Indention between items: 图片间距: Scale of frames (%): 图片缩放比例 (%): Quality of result image (0-100): 生成图片的质量 (0-100): Indentations 视频间距 Indentftion of start: 开始的间距: Indentation of finish: 结束的间距: Styles 样式 Style: 样式: Shadowed 阴影 Simple 简洁 Default image format Show logo TMainWindow Current frame 当前图片 Preview 预览 Style 样式 Timestamps 时间位置 Size (%) 尺寸 (%) Offset 偏移 Indentation 间距 Background 背景 &Open... &打开... Ctrl+O Open video file 打开视频文件 &Close &关闭 Ctrl+Q Close program 退出 &Export... &导出... Ctrl+E Export composition to the graphics file Export composition to the graphics file &Save like images... &Save like images... Ctrl+M Save frames like many images 保存为多张图片 &Print... &打印... Print scene 打印 Delete frame 删除图片 Ctrl+D Delete current frame 删除当前图片 Save frame 保存图片 Ctrl+S Save current frame 保存当前图片 Options 选项 Ctrl+P Go to options 跳至选项 16 24 32 48 About... 关于... F1 About program 关于这个程序 About Qt... 关于Qt... About Qt framework Main toolbar 主工具栏 Open File 打开文件 Video (*.avi *.mpg *.wmv *.mov *.mkv);; All (*.*) 视频 (*.avi *.mpg *.wmv *.mov *.mkv);; 全部文件 (*.*) invalid path! 路径不可用! Error! Can't open video driver! 出现错误,不能打开视频驱动! Error! Can't open video file! 出现错误,不能打开视频文件! Proceding video file... 正在处理视频文件... Saving... 保存... Images (*.png *.jpg) 图片 (*.png *.jpg) Error! Can't save this file 出现错误,不能保存这个文件 Not enough memory! 内存不足! Images (*.png *.xpm *.jpg) 图片 (*.png *.xpm *.jpg) Choose directory 选择目录 Saving images... 保存图片... Processing video file... 正在处理视频文件... Options panel Ctrl+. &Open few files... Open video files Video (*.avi *.mpg *.mpeg *.ogg *.wmv *.mov *.mkv);; All (*.*) Processing video files... TPreviewPanel Zoom in 放大 Zoom out 缩小 TProgress Main progress File in progress: videocut-0.2.0.orig/menu/0000755000175000017500000000000010747114501014662 5ustar troorltroorlvideocut-0.2.0.orig/menu/videocut0000644000175000017500000000024110636245307016432 0ustar troorltroorl?package(videocut):\ needs="X11"\ section="Apps/Video"\ hints="KDE"\ title="VideoCut"\ command="/usr/bin/videocut"\ icon="/usr/share/pixmaps/videocut.svg" videocut-0.2.0.orig/ABOUT0000644000175000017500000000021610747117030014512 0ustar troorltroorlVideoCut - is an open source desktop application specially created for capturing screenshots from video files. It is using xine-lib and Qt-4. videocut-0.2.0.orig/THANKSTO0000644000175000017500000000070610747117060015102 0ustar troorltroorlXine team Trolltech RaulE quax (Slackware package) cjacker (Bug repporting, Chinese translate) DanaKil (French translation) jarek (Polish translation and rpm package for Mandriva) videocut-0.2.0.orig/LICENSE0000644000175000017500000003565110747117052014741 0ustar troorltroorlCopyright (c) 2007 troorl This program is distributed under the terms of the GPL v2. GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, Cambridge, MA 02139, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS videocut-0.2.0.orig/videocut.pro0000755000175000017500000000523410747123057016277 0ustar troorltroorlQT += svg TEMPLATE = app CONFIG += warn_on \ release \ opengl DESTDIR = build/result OBJECTS_DIR = build/obj MOC_DIR = build/moc UI_DIR = build/ui TARGET = videocut data.files += build/result/videocut data.path += /usr/bin/ menu.files += menu/videocut menu.path += /usr/share/menu/ logo.files += videocut.svg logo.path += /usr/share/icons/hicolor/scalable/apps share.files += AUTHORS share.files += THANKSTO share.files += LICENSE share.files += ABOUT share.path += /usr/share/doc/videocut/ INSTALLS += data INSTALLS += share INSTALLS += menu INSTALLS += logo DEPENDPATH += ". \ src/TListPanel \ src/TOptions \ src/TPreviewPanel \ src/TPreviewWidget \ #src/TVideo \ build/ui" HEADERS += src/frameStruct.h \ src/TMainWindow.h \ src/TProgress.h \ #src/TVideo/TVideo.h \ src/TListPanel/TFrameItem.h \ src/TListPanel/TListPanel.h \ src/TOptions/TConfigdialog.h \ src/TOptions/TFontChoser.h \ src/TOptions/TPages.h \ src/TOptions/TUserSettings.h \ src/TPreviewPanel/TGraphItem.h \ src/TPreviewPanel/TPreviewPanel.h \ src/TPreviewPanel/TBackground.h \ src/TPreviewPanel/TLogo.h \ src/TOptions/TColorChoser.h \ src/const.h \ src/TViewFrame/TViewFrame.h \ src/TViewFrame/TViewItem.h \ src/TFrameStruct.h \ src/TAboutWindow.h \ src/backends/TXine.h SOURCES += src/main.cpp \ src/TMainWindow.cpp \ src/TProgress.cpp \ #src/TVideo/TVideo.cpp \ src/TListPanel/TFrameItem.cpp \ src/TListPanel/TListPanel.cpp \ src/TOptions/TConfigdialog.cpp \ src/TOptions/TFontChoser.cpp \ src/TOptions/TPages.cpp \ src/TOptions/TUserSettings.cpp \ src/TPreviewPanel/TGraphItem.cpp \ src/TPreviewPanel/TPreviewPanel.cpp \ src/TPreviewPanel/TBackground.cpp \ src/TPreviewPanel/TLogo.cpp \ src/TOptions/TColorChoser.cpp \ src/TViewFrame/TViewFrame.cpp \ src/TViewFrame/TViewItem.cpp \ src/TFrameStruct.cpp \ src/TAboutWindow.cpp \ src/backends/TXine.cpp RESOURCES += resources.qrc TRANSLATIONS = i18n/videocut.ru_RU.ts \ i18n/videocut.uk_UA.ts \ i18n/videocut.zh_CN.ts \ i18n/videocut.fr_FR.ts INCLUDEPATH += /usr/include \ /usr/include/qt4/ \ build/ui \ src/TPreviewPanel \ src/TOptions \ src/TListPanel \ src/backends LIBS += "-lxine" videocut-0.2.0.orig/videocut.svg0000644000175000017500000006076610631057055016302 0ustar troorltroorl image/svg+xml Multimedia Category Jakub Steiner http://jimmac.musichall.cz video multimedia category VideoCut videocut-0.2.0.orig/resources.qrc0000755000175000017500000000201610747103115016440 0ustar troorltroorl img/exit.png img/logo.svg img/about.png img/export.png img/delete_frame.png img/save_frame.png img/save_multi.png img/print.png img/fileopen.png img/filesopen.png img/options.png img/viewpanel.png img/zoomin.png img/zoomout.png img/colors.png img/fonts.png img/background.png img/logo_gray.svg img/qt_logo.png LICENSE AUTHORS ABOUT THANKSTO i18n/videocut.ru_RU.qm i18n/videocut.uk_UA.qm i18n/videocut.zh_CN.qm i18n/videocut.pl_PL.qm i18n/videocut.de_DE.qm i18n/videocut.fr_FR.qm videocut-0.2.0.orig/AUTHORS0000644000175000017500000000006510633345401014766 0ustar troorltroorlMain author and maintainer: troorl videocut-0.2.0.orig/INSTALL0000644000175000017500000000027610747117041014756 0ustar troorltroorlYou need devel packages of Qt4 >= 4.3, libxine. Put in source directory: - qmake (or qmake-qt4) - make - make install (as root) After compillation executable is situated in build/result. videocut-0.2.0.orig/videocut.desktop0000644000175000017500000000116510636251773017150 0ustar troorltroorl[Desktop Entry] Categories=AudioVideo;Player;Video;Qt;KDE Encoding=UTF-8 Exec=videocut %f GenericName=A simple video application GenericName[ru_RU]=Простое видео приложение Icon=videocut MimeType=audio/ac3;audio/mp4;audio/mpeg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-adpcm;audio/x-matroska;audio/x-mp2;audio/x-mp3;audio/x-ms-wma;audio/x-vorbis;audio/x-wav;video/avi;video/mp4;video/mpeg;video/quicktime;video/vnd.rn-realvideo;video/x-matroska;video/x-ms-asf;video/x-msvideo;video/x-ms-wmv;video/x-ogm;video/x-theora Name=VideoCut Name[es]=VideoCut Name[ru_RU]=VideoCut Name[pl]=VideoCut Type=Application