From c2a506082a9345e2004a4c7a7afc7dab8ad36f96 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Wed, 28 Jul 2021 19:27:49 +0200 Subject: [PATCH 1/4] add mini-map icon --- app/ui/style/olive-dark/olive-dark.qrc | 4 + app/ui/style/olive-dark/png/map.128.png | Bin 0 -> 934 bytes app/ui/style/olive-dark/png/map.16.png | Bin 0 -> 356 bytes app/ui/style/olive-dark/png/map.32.png | Bin 0 -> 417 bytes app/ui/style/olive-dark/png/map.64.png | Bin 0 -> 569 bytes app/ui/style/olive-dark/svg/map.svg | 155 +++++++++++++++++++++++ app/ui/style/olive-light/olive-light.qrc | 4 + app/ui/style/olive-light/png/map.128.png | Bin 0 -> 1071 bytes app/ui/style/olive-light/png/map.16.png | Bin 0 -> 384 bytes app/ui/style/olive-light/png/map.32.png | Bin 0 -> 460 bytes app/ui/style/olive-light/png/map.64.png | Bin 0 -> 629 bytes app/ui/style/olive-light/svg/map.svg | 155 +++++++++++++++++++++++ 12 files changed, 318 insertions(+) create mode 100644 app/ui/style/olive-dark/png/map.128.png create mode 100644 app/ui/style/olive-dark/png/map.16.png create mode 100644 app/ui/style/olive-dark/png/map.32.png create mode 100644 app/ui/style/olive-dark/png/map.64.png create mode 100644 app/ui/style/olive-dark/svg/map.svg create mode 100644 app/ui/style/olive-light/png/map.128.png create mode 100644 app/ui/style/olive-light/png/map.16.png create mode 100644 app/ui/style/olive-light/png/map.32.png create mode 100644 app/ui/style/olive-light/png/map.64.png create mode 100644 app/ui/style/olive-light/svg/map.svg diff --git a/app/ui/style/olive-dark/olive-dark.qrc b/app/ui/style/olive-dark/olive-dark.qrc index 551f40913..cf8b1381e 100644 --- a/app/ui/style/olive-dark/olive-dark.qrc +++ b/app/ui/style/olive-dark/olive-dark.qrc @@ -110,6 +110,10 @@ png/magnet.32.png png/magnet.64.png png/magnet.128.png + png/map.16.png + png/map.32.png + png/map.64.png + png/map.128.png png/minus.16.png png/minus.32.png png/minus.64.png diff --git a/app/ui/style/olive-dark/png/map.128.png b/app/ui/style/olive-dark/png/map.128.png new file mode 100644 index 0000000000000000000000000000000000000000..d02a8be78b2b36a22023427ce0267fb1970873d1 GIT binary patch literal 934 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgb}oTTCjL%Oqz zt}}1F7Mj3+gLPZO)_rZ4_U>Rh*P#4h!IYxAUzeO?$XY9Xz&&C2&5Bo-Id14Lt(jey zpw@8G`oD4BzfF>i@0azn_*>1}(LQ^B&o;^TZ*^lC-)x)j$~^Pt?R5;>sw7+v&j7Lh zY}>yl?b|kO23Es{0ycqj42L8gcBFUzYYaNI`nQD3=apOM>3^!~XL!h?Fo&_l7_P>G znIoM%!Mul?o8@Omy$*h$yMcKPv-V-XFX!_gSQjwKOb`0^Wn)GN!`5rh53naBzlgM2 z!=SIe{rc8xhl5U~zIIKvV^Vwnr+wGY%Vv$=C(oSS#o6#N@xNitzh2)5zOP*;G2M`? zYOpk!Z>iZJ?#yq{{`DHS3hM@|FAT*QcEv#quM)^{uqR^-zwH5;x~*{vnho+GW1ktT zvlbWuO|{6~>k!0n{J_x*&VSmuj~Sbb3Lkh<^V?a@okjdWqWpD^j$L*Rnol=f`_=g| za=W>BM}@}no>=334o5WO6c)`rY5(o?6EXc~$_{tY0(VDiJ^PBS^X?y4kZN;B4)W`w z2SVQmuh6$&{{98mgEj4rCOzvfmzS^>Tsf>Db?nT&GS&iyo?GV^&Fhr_#<(%#l%REu zwLJ+ldm8?pymv3?U6t$FQqddCWsSNCYj0L$J?#4UeJ3zMWq($MCp*teMZdUpR;F%S T#hzmV%pMG$u6{1-oD!M<{G^5W literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/map.16.png b/app/ui/style/olive-dark/png/map.16.png new file mode 100644 index 0000000000000000000000000000000000000000..63f0a15b747fa43c8d3defdf26ff73627b915303 GIT binary patch literal 356 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC|;Bi(`mI@6m||IS)CAxZLNDc5^5abkY+`5H*{~<&?z{HX*3U zN5AR8L9t_}cb(8mn=W8<{O6h3`+q0q&s@T7z%Xs5=mqNqUmh9?Utn6wy?RFM=2uI_ z7M#fWdnv2oxA~M3rdKEGX5E~^!XWiPpi)$TVfO#VX?vEcpE+RrNzR_}{cg1v8ZZBF m?)bTNmy5%TFE{6YW%|BNA!zGsLo1-`7(8A5T-G@yGywqU?S}jS literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/png/map.32.png b/app/ui/style/olive-dark/png/map.32.png new file mode 100644 index 0000000000000000000000000000000000000000..a55df93a3579007b87cfb899a56d9952081c917f GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQtXBi(^Pc>)UC2c@G%~xZP*f&`e;HayhD$bC9jakzXiD-mIhL zMkC{*0u!??A@?WO#SX16ez)lRNz3TQ6Z@4JR#h>4J8)#OIlG=x(H6#_glC?4CtXtJ z&S=g5dE8RhUUcHs8DXKdBG)}*7wacANGMb^oHESmTE(@2@mYLS{DD}PdChDFpJET+ z(=8|y{Z-TC+I=rIR`CbV5e9o%1^GqW{ToCI=H<5k2@8Ky!#|_@>6Ndw-XA1aym9#1 upPKWAFU4-D>vGanMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq^mI)5S5QV$R!HhF;8$B5nJ{w;C;I-(V6ZcI$|B1+#u)a_(gB z3T9g;g{`qcRUICeI(yDanJGlFm3?!6_J5Y_q+0#|H9l-lQng zUv>D()VDjYqoZ4~X^PU)FNH6DzY1?)UBSF!BSR^Jsn`O(1;?1KFkXphuxgOv4qy)m z-rI2QaRFzLm-_+P0?wZ5jGe604k#(@E9O#VYS1jWoV?$#;C9b*%hpx<4=f3|zxoc- z)CRk0f8*yo6ARhT83i*Ynei1vmX3q0LoaJbU3v71_iEc6R1+dsyw}?9P%0B=a-GxG zp8tgI6pjqJs52*Rc27Srdx2HMtXHfh?-*m>-}qC$DxOj7g4Fs{&9-#&>)RU49R);p s@7!j7FtT{;V=sO(YG@c4izFOe42&@bPgg&ebxsLQ09=aRy8r+H literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-dark/svg/map.svg b/app/ui/style/olive-dark/svg/map.svg new file mode 100644 index 000000000..b65b63e58 --- /dev/null +++ b/app/ui/style/olive-dark/svg/map.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + diff --git a/app/ui/style/olive-light/olive-light.qrc b/app/ui/style/olive-light/olive-light.qrc index 09583f156..d080d292e 100644 --- a/app/ui/style/olive-light/olive-light.qrc +++ b/app/ui/style/olive-light/olive-light.qrc @@ -110,6 +110,10 @@ png/magnet.32.png png/magnet.64.png png/magnet.128.png + png/map.16.png + png/map.32.png + png/map.64.png + png/map.128.png png/minus.16.png png/minus.32.png png/minus.64.png diff --git a/app/ui/style/olive-light/png/map.128.png b/app/ui/style/olive-light/png/map.128.png new file mode 100644 index 0000000000000000000000000000000000000000..724b977a4772765cb34e52b328612ce490a30257 GIT binary patch literal 1071 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSoCO|{#S9Fx?I6t9|MX)jP*AeO zHKHUqKdq!Zu_%?Hyu4g5GcUV1Ik6yBFTW^#_B$IXpdt~FBFEB_jQk=7-^8Ml%shpl z(&Fs=vhAnO%mm6CLkuY`N={|SC@Cqh($`PU&&|!xE7mK|%+AbBP036I8K)28>4zld zrRT?ICgEaktG3V{wgIRadMA{w}FFEGJvXpf@=MfJ69Y-W|y*9n^ zO}U;n|M!Vj7N*!)4&pl-?l~@)?Q?dCp+wqKtD_e#oxHO3S;}IEi6JLalupijUpsA5 zuI!I^lV->LXMoOwfdk7v{2TXL!WnAj8<9 z%ut9>OO{}^y=)Ed(#m=F{V#9n=vaUD&9Mv2q5n$1Z{DO6e=cov{Fyax9xn=FeDnT& z{k{mDI)ly8f`(r#O3jrX`At$OFDozKFWc*Oe%a-h@v-qCFO?N)_y2I_|HPQ5FV_A3 ztj^nCPDYGRD(mjAJN{^Yx%K(a)v@s|Y7Hj7-3!wrLgkH5vj_;r^V%L>wMu{G+)11V z&PZ9O#xu`7zea>1N&w`468$tMh(X+$|AXMam%o^d7((m@ zJA6Iy_2q@)H4nDT+8J!bI3vTSWbGiMibd@hh@Ahxfv0fvezh~m3 zH*eP5xp(j1%`^LqH=oF)Z(@aIpxelT2}{xkmWU(ac&{kO&BVd))6=PWC~bL--@*ct;tkf^7tpUXO@geCz0 COwI`a literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/map.16.png b/app/ui/style/olive-light/png/map.16.png new file mode 100644 index 0000000000000000000000000000000000000000..c6283ee791670e266a77a8360748fe6f9af429c2 GIT binary patch literal 384 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`oCO|{#S9G08$g&*{RsbBprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesC}KMi(`mI@6m||IS&O0xTMzwxhcGM70?$;5H*{~bwuh2m(J0} zQ&rj<9vtM`^jK4|P2lsy2Qv4K_{+q9l+SqnQ?aFB+L0AXn&tLORg67VDtiSzv^>%> zxle7{bA;o}8iodeV5!sRn@X}W(ySR~GuDNMmd;k4u!VI3{|7Dy^@u-gQcRQNbBbD* zWxn&AWb^CH-T8}~zOBFSRFs?c+fQL7pQ6X5!oCISlXhP>oSXWIO`qMY$dpxk6VT-h Mp00i_>zopr03Fhb=>Px# literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/png/map.32.png b/app/ui/style/olive-light/png/map.32.png new file mode 100644 index 0000000000000000000000000000000000000000..04a464eeda1c7dbe3199ad6bc349bdc4c37e1dc0 GIT binary patch literal 460 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?5GL=a}2dU(e+prB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3AkesQs6xi(^Pc>)UCLS%(coT+-|2q>8=0m*89$`&4Of%Sqm%o_En2 zJN@$mI9R3Q71%Ydl`L-Xd}CtTcSm6F+%N8D6lyscCswyJOnCm2?LgEeoes^L3>EsP zKOJRo2ogMX=l59^QHF%NJh@YQj><4hdVF)$s%h6t&Te|M+IE{=qDE4KM8YQq_3Iz_ z4SX-F8%NI(op{c2`|8(K_E`-1|NhMO6FQT_`e5y9yB{2rR4R9bXusUJ-mH@U2*Y;i z1D4lgR(+M9P{{1@OXX(ecIz|tzg{)pXZ*im4_|D3!Y4V4n~jganMprB-l zYeY$Kep*R+Vo@qXd3m{BW?pu2a$-TMUVc&f>~}U&Kt&=TMUJH<8TmyFzKKO8nRyC9 zrN!C#W!q1mnF*9Ph8R*>l$^?tQBqQ1rLUiypPQSXSFBf_nVp%Nnv$6aGEN`F(+^3^ zOV5wbOwP}Xo3Al}fq`+cr;B4q#hkaZ9K8-Zh_wB`uEi1+@Qmr@p`~1tdh@>UR59x- zRfOEkX6yF%$0R!J8WwMp{$ykS+DS!Z@x>R#_ba|= zA7D!0-msD322+j>!!`zK?grfh$KXPX_!oS&km;zKwX9sJXx*yA`^AEIx?tDzeZ?A#GOy154=R6Pt^UjR0^CSs zTWmr?uQ$G``*|)=woMGk_;GF_OTgUQ>FrURp>rccuXA5xpO_mc63h^M>2r3Da0>T^ zPP>L{whP|M&;IWRa{7(f4v&)}FDIp~KP&pds~|D(dldVFInv!HSPpb8y27h1I1?CF jIf91`cn%x<_`@)>C|N>vS)3R!wi!HK{an^LB{Ts5N^}CF literal 0 HcmV?d00001 diff --git a/app/ui/style/olive-light/svg/map.svg b/app/ui/style/olive-light/svg/map.svg new file mode 100644 index 000000000..fa176eb33 --- /dev/null +++ b/app/ui/style/olive-light/svg/map.svg @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + Martin Ruskov + + + http://commons.wikimedia.org/wiki/Tango_icon + + + + + + + + + + + + + + + + + From e5c2960ed6b3489792bb04c351d7df435d1acc42 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Thu, 29 Jul 2021 20:21:37 +0200 Subject: [PATCH 2/4] remove "mini-map" Node toolbar button text and add new icon --- app/ui/icons/icons.cpp | 3 +++ app/ui/icons/icons.h | 3 +++ app/widget/nodeview/nodeviewtoolbar.cpp | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/ui/icons/icons.cpp b/app/ui/icons/icons.cpp index f5466bb01..322237b65 100644 --- a/app/ui/icons/icons.cpp +++ b/app/ui/icons/icons.cpp @@ -60,6 +60,7 @@ QIcon icon::Sequence; QIcon icon::Video; QIcon icon::Audio; QIcon icon::Image; +QIcon icon::MiniMap; QIcon icon::TriUp; QIcon icon::TriLeft; QIcon icon::TriDown; @@ -110,6 +111,8 @@ void icon::LoadAll(const QString& theme) Audio = Create(theme, "audiosource"); Image = Create(theme, "imagesource"); + MiniMap = Create(theme, "map"); + TriUp = Create(theme, "tri-up"); TriLeft = Create(theme, "tri-left"); TriDown = Create(theme, "tri-down"); diff --git a/app/ui/icons/icons.h b/app/ui/icons/icons.h index 88bbf207e..c8c1788a0 100644 --- a/app/ui/icons/icons.h +++ b/app/ui/icons/icons.h @@ -65,6 +65,9 @@ extern QIcon Video; extern QIcon Audio; extern QIcon Image; +// Node Icons +extern QIcon MiniMap; + // Triangle Arrows extern QIcon TriUp; extern QIcon TriLeft; diff --git a/app/widget/nodeview/nodeviewtoolbar.cpp b/app/widget/nodeview/nodeviewtoolbar.cpp index c63be73db..6ffaa6d35 100644 --- a/app/widget/nodeview/nodeviewtoolbar.cpp +++ b/app/widget/nodeview/nodeviewtoolbar.cpp @@ -43,13 +43,13 @@ void NodeViewToolBar::changeEvent(QEvent *e) void NodeViewToolBar::Retranslate() { add_node_btn_->setToolTip(tr("Add Node")); - minimap_btn_->setText(tr("Mini-Map")); minimap_btn_->setToolTip(tr("Toggle Mini-Map")); } void NodeViewToolBar::UpdateIcons() { add_node_btn_->setIcon(icon::Add); + minimap_btn_->setIcon(icon::MiniMap); } } From 2c2dd440aba2b2f2b968af4980dc3e116376e825 Mon Sep 17 00:00:00 2001 From: Alexandre Prokoudine Date: Tue, 3 Aug 2021 02:35:03 +0300 Subject: [PATCH 3/4] Update Russian translation --- app/ts/ru_RU.ts | 859 ++++++++++++++++++++++++++++-------------------- 1 file changed, 501 insertions(+), 358 deletions(-) diff --git a/app/ts/ru_RU.ts b/app/ts/ru_RU.ts index a6a2e6b54..2e6123ff7 100644 --- a/app/ts/ru_RU.ts +++ b/app/ts/ru_RU.ts @@ -4,37 +4,37 @@ AudioParams - + %1 Hz %1 Гц - + Mono Моно - + Stereo Стерео - + 2.1 2.1 - + 5.1 5.1 - + 7.1 7.1 - + Unknown (0x%1) Неизвестно (0x%1) @@ -42,24 +42,24 @@ Config - + Error loading settings Ошибка при загрузке настроек - + Failed to load application settings. This session will use defaults. %1 - + Error saving settings Ошибка при сохранении настроек - + Failed to save application settings. The application may lack write permissions for this location. @@ -95,12 +95,12 @@ NodeCopyPasteWidget - + Error pasting nodes Ошибка при вставке нод - + Failed to paste nodes: %1 Не удалось вставить ноды: %1 @@ -209,7 +209,7 @@ NodeViewItem - + %1... %1... @@ -420,19 +420,39 @@ olive::AboutDialog - + + Welcome to %1 + Приветствуем в %1 + + + About %1 О программе %1 - + Olive is a free open source non-linear video editor. This software is licensed under the GNU GPL Version 3. Olive — свободный нелинейный видеоредактор. Программа распространяется на условиях GNU GPL v3. - - <html>Olive wouldn't be possible without the support of gracious donations from <a href='https://www.patreon.com/olivevideoeditor'>Patreon</a></html>: - + + <b>Olive relies on support from the community to continue its development.</b> + <b>Разработка Olive возможна благодаря поддержке сообщества.</b> + + + + Olive wouldn't be possible without the support of gracious donations from the following people. + Проекту уже помогают: + + + + <html>%1 If you like this project, please consider making a <a href='https://olivevideoeditor.org/donate.php'>one-time donation</a> or <a href='https://www.patreon.com/olivevideoeditor'>pledging monthly</a> to support its development.</html> + <html>%1 Если вам нравится этот проект, будем признательны за <a href='https://olivevideoeditor.org/donate.php'>разовое</a> или <a href='https://www.patreon.com/olivevideoeditor'>ежемесячное</a> пожертвование для поддержки разработки.</html> + + + + Don't show this message again + Больше не показывать это сообщение @@ -480,27 +500,27 @@ olive::Block - + Length Длительность - + Media In Факт. начало - + Enabled Включено - + Speed Скорость - + Reverse Развернуть @@ -864,180 +884,182 @@ Не удалось создать последовательность - + Possible image sequence detected Обнаружена возможная последовательность изображений - + The file '%1' looks like it might be part of an image sequence. Would you like to import it as such? - + You must specify a project file to export Необходимо указать проектный файл, который экспортировать - + Specified project does not exist Указанный проект не существует - + Failed to open startup file Не удалось открыть стартовый файл - + The project "%1" doesn't exist. A new project will be started instead. Проект "%1" не существует. Вместо него будет создан новый проект. - - + + Missing OpenTimelineIO Libraries Отсутствуют библиотеки OpenTimelineIO - - + + This build was compiled without OpenTimelineIO and therefore cannot open OpenTimelineIO files. Это сборка подготовлена без OpenTimelineIO, поэтому вы не сможете открыть файлы OpenTimelineIO. - - + + Error Ошибка - + This Sequence is empty. There is nothing to export. Эта последовательность пустая. В ней нет данных для экспорта. - + No valid sequence detected. Make sure a sequence is loaded and it has a connected Viewer node. - - + + Auto-Recovery Error Ошибка при автовосстановлении - + Failed to save auto-recovery to "%1". Olive may not have permission to this directory. - + Olive Project Проект Olive - + OpenTimelineIO OpenTimelineIO - + The following projects had unsaved changes when Olive forcefully quit. Would you like to load them? - + В следующих проектах не были сохранены изменения, когда Olive упал. Хотите загрузить их? - + Found auto-recoveries but failed to load the auto-recovery index. Auto-recover projects will have to be opened manually. Your recoverable projects are still available at: %1 - + Найдены данные для автовосстановления, но не удалось загрузить индекс автовосстановления. Автоматически восстанавливаемые проекты придется открыть вручную. + +Восстанавливаемые проекты по-прежнему доступны здесь: %1 - + The following project versions have been auto-saved: Следующие версии проектов были автоматически сохранены: - + Save Project As Сохранить проект как - + Load Project Загрузка проекта - + Label Node Метка ноды - + Set node label Указать метку ноды - + Sequence %1 Последовательность %1 - + Cannot open recent project Не удалось открыть недавний проект - + The project "%1" doesn't exist. Would you like to remove this file from the recent list? Проект"%1" не существует. Хотите удалить этот файл из списка недавно открывавшихся? - + Unsaved Changes Несохраненные изменения - + The project '%1' has unsaved changes. Would you like to save them? В проекте '%1' остались несохраненные изменения. Сохранить их? - + Save Сохранить - + Save All Сохранить все - + Don't Save Не сохранять - + Don't Save All Не сохранять все - + Failed to cache sequence Не удалось закэшировать последовательность - + No active viewer found with this sequence. Для этой последовательности не найден активный монитор. - + Open Project Открыть проект @@ -1077,7 +1099,7 @@ Your recoverable projects are still available at: %1 Waiting for crash report to be generated... - + Создаётся отчёт о падении программы… @@ -1108,7 +1130,7 @@ Your recoverable projects are still available at: %1 Failed to find symbols necessary to send report. This is a packaging issue. Please notify the maintainers of this package. - + Не удалось найти отладочные символы, чтобы отправить отчёт. Это проблема сборки программы. Сообщите об этом автору сборки. @@ -1242,54 +1264,54 @@ Your recoverable projects are still available at: %1 olive::DiskCacheDialog - + Disk Cache: %1 Дисковый кэш: %1 - + Disk Cache Settings Параметры кэша на диске - + Maximum Disk Cache: Макс. кэш на диске: - + %1 GB %1 Гбайт - - - + + + Clear Disk Cache Очистить дисковый кэш - + Automatically clear disk cache on close Автоматически стирать при закрытии - + Are you sure you want to clear the disk cache in '%1'? Вы действительно хотите стереть дисковый кэш в '%1'? - + Disk Cache Cleared Дисковый кэш очищен - + Disk cache failed to fully clear. You may have to delete the cache files manually. - + Disk Cache Partially Cleared Дисковый кэш частично очищен @@ -1995,42 +2017,42 @@ Your recoverable projects are still available at: %1 olive::Footage - + Filename Имя файла - + Loop Mode - + None Нет - + Loop Петля - + Clamp - + %1: Image - %2x%3 - %1: Изображение - %2x%3 + %1: Изображение - %2x%3 - + %1: Video - %2x%3 - %1: Видео - %2x%3 + %1: Видео - %2x%3 - + %1: Audio - %n Channel(s), %2Hz %1: Звук - %n канал, %2Гц @@ -2039,32 +2061,32 @@ Your recoverable projects are still available at: %1 - + Video Видео - + Audio Звук - + Subtitle - Субтитры + Субтитры - + Unknown - Неизвестно + Неизвестно - + Filename: %1 Имя файла: %1 - + Invalid @@ -2076,7 +2098,7 @@ Your recoverable projects are still available at: %1 Import video, audio, or still image files into the composition. - + Вставить видео, звук или статическое изображение в проект. @@ -2120,7 +2142,7 @@ Your recoverable projects are still available at: %1 olive::FootageViewerPanel - + Footage Viewer Просмотр видеоматериала @@ -2243,7 +2265,7 @@ Your recoverable projects are still available at: %1 Frame to Export: - + Экспортируемый кадр: @@ -2272,27 +2294,27 @@ Your recoverable projects are still available at: %1 Свойства ключевого кадра - + In: Вход: - + Out: Выход: - + Linear Линейный - + Hold Константа - + Bezier Безье @@ -2323,17 +2345,17 @@ Your recoverable projects are still available at: %1 olive::LoadOTIOTask - + Failed to load OpenTimelineIO from file "%1" Не удалось загрузить OpenTimelineIO из файла "%1" - + Unknown OpenTimelineIO root element Неизвестный корневой элемент OpenTimelineIO - + Failed to load clip Не удалось загрузить клип @@ -2341,402 +2363,427 @@ Your recoverable projects are still available at: %1 olive::MainMenu - + &Save '%1' Со&хранить '%1' - + Save '%1' &As Сохранить '%1' к&ак - + Close '%1' Закрыть '%1' - + Close All Except '%1' Закрыть все кроме '%1' - + &Save Project &Сохранить проект - + Save Project &As Сохранить проект &как - + Close Project Закрыть проект - + Close All Except Current Project Закрыть все проекты кроме текущего - + (None) (нет) - + &File &Файл - + &New &Создать - + &Open Project &Открыть проект - + Open &Recent Открыть из &недавнего - + &Clear Recent List О&чистить список недавних - + Sa&ve All Projects Сохра&нить все проекты - + &Import... &Импортировать… - + &Export &Экспортировать - + &Media... &Медиаданные… - + Close All Projects Закрыть все проекты - + E&xit В&ыход - + &Edit &Правка - + Delete (alt) - + Удалить (alt) - + Insert Вставить - + Overwrite Переписать - + Select &All Выд&елить всё - + Deselect All Снять выделение - + Ripple to In Point Сдвиг до точки входа - + Ripple to Out Point Сдвиг до точки выхода - + Edit to In Point Правка до точки входа - + Edit to Out Point Правка до точки выхода - + + Nudge Left + Сдвинуть влево + + + + Nudge Right + Сдвинуть вправо + + + + Move In Point to Playhead + Точка входа к указателю воспроизведения + + + + Move Out Point to Playhead + Точка выхода к указателю воспроизведения + + + Delete In/Out Point Удалить точку входа/выхода - + Ripple Delete In/Out Point Удалить со сдвигом точку входа/выхода - + Set/Edit Marker Установить/Изменить маркер - + &View &Вид - + Zoom In Приблизить - + Zoom Out Отдалить - + Increase Track Height Увеличить высоту дорожки - + Decrease Track Height Уменьшить высоту дорожки - + Toggle Show All Показывать весь проект - + Full Screen Полноэкранный режим - + Full Screen Viewer Просмотр в полноэкранном режиме - + &Playback Вос&произведение - + Go to Start К началу - + Previous Frame К предыдущему кадру - + Play/Pause Воспроизведение/Пауза - + Play In to Out Проиграть от входа до выхода - + Next Frame К следующему кадру - + Go to End В конец - + Go to Previous Cut К предыдущему отрезу - + Go to Next Cut К следующему отрезу - + Go to In Point К точке входа - + Go to Out Point К точке выхода - + Shuttle Left Уменьшить скорость - + Shuttle Stop Пауза - + Shuttle Right Увеличить скорость - + Loop Петля - + &Sequence П&оследовательность - + Cache Entire Sequence Закэшировать всю последовательность - + Cache Sequence In/Out Закэшировать вход/выход последовательности - + + Clear Disk Cache + Очистить дисковый кэш + + + &Window &Окно - + Maximize Panel Развернуть панель - + Lock Panels Закрепить панели - + Reset to Default Layout Вернуть исходный вид панелей - + &Tools &Инструменты - + Pointer Tool Указатель - + Edit Tool Выделение - + Ripple Tool Монтаж со сдвигом - + Rolling Tool Монтаж с совмещением - + Razor Tool Подрезка - + Slip Tool Прокрутка с совмещением - + Slide Tool Прокрутка - + Hand Tool Навигация - + Zoom Tool Масштаб - + Transition Tool Переход - + Enable Snapping Включить прилипание - + Preferences Параметры - + &Help &Справка - + A&ction Search &Найти команду - + Send &Feedback... &Дать обратную связь… - + &About... &О программе… @@ -2761,12 +2808,12 @@ Your recoverable projects are still available at: %1 olive::MainWindow - + Driver Warning - Предупреждение драйвера + Предупреждение о драйвере - + Olive has detected your system is using the Nouveau graphics driver. This driver is known to have stability and performance issues with Olive. It is highly recommended you install the proprietary NVIDIA driver before continuing to use Olive. @@ -2924,127 +2971,132 @@ This driver is known to have stability and performance issues with Olive. It is olive::MenuShared - + &Project &Проект - + &Sequence П&оследовательность - + &Folder П&апка - + Cu&t В&ырезать - + Cop&y С&копировать - + &Paste &Вставить - + Paste Insert - + Duplicate Сделать копию - + Delete Удалить - + Ripple Delete Удалить со сдвигом - + Split Разделить - + + Speed/Duration + Скорость и длительность + + + Set In Point Установить точку входа - + Set Out Point Установить точку выхода - + Reset In Point Сбросить точку входа - + Reset Out Point Сбросить точку выхода - + Clear In/Out Point Очистить точки входа/выхода - + Add Default Transition Добавить переход по умолчанию - + Link/Unlink Связать/Убрать связь - + Enable/Disable Включить/Отключить - + Nest Вложить - + Frames Кадры - + Drop Frame С пропуском кадров - + Non-Drop Frame Без пропуска кадров - + Milliseconds Миллисекунды - + Seconds Секунды @@ -3103,67 +3155,67 @@ This driver is known to have stability and performance issues with Olive. It is olive::Node - + Input Вход - + Output Выход - + General Общие - + Distort Искажения - + Math Математика - + Color Цвет - + Filter Фильтр - + Timeline Монтажный стол - + Generator Генератор - + Channel Канал - + Transition Переход - + Project Проект - + Uncategorized Без категории @@ -3171,7 +3223,7 @@ This driver is known to have stability and performance issues with Olive. It is olive::NodePanel - + Node Editor Редактор нод @@ -3222,7 +3274,7 @@ This driver is known to have stability and performance issues with Olive. It is olive::NodeParamViewItem - + %1 (%2) %1 (%2) @@ -3230,8 +3282,13 @@ This driver is known to have stability and performance issues with Olive. It is olive::NodeParamViewItemBody - - + + ... + + + + + %1: %1: @@ -3249,6 +3306,19 @@ This driver is known to have stability and performance issues with Olive. It is + + olive::NodePropertiesDialog + + + Node Properties + + + + + Name: + Название: + + olive::NodeTablePanel @@ -3305,17 +3375,17 @@ This driver is known to have stability and performance issues with Olive. It is X - + X Y - + Y Z - + Z @@ -3326,71 +3396,84 @@ This driver is known to have stability and performance issues with Olive. It is olive::NodeView - + Label Метка - - Auto-Position - Автопозиционирование - - - + Open in Viewer - + Smooth Edges Плавные края - + Filter Фильтр - - Show All - Показывать все + + Show All Nodes + Показывать все ноды - - Show Selected Blocks Only - Показывать только выбранные блоки + + Show Selected + Показывать выбранное - + Direction Направление - + Top to Bottom Сверху вниз - + Bottom to Top Снизу вверх - + Left to Right Слева направо - + Right to Left Справа налево - + Add Добавить + + olive::NodeViewToolBar + + + Add Node + Добавить + + + + Mini-Map + Миникарта + + + + Toggle Mini-Map + Включить или выключить миникарту + + olive::PanNode @@ -3472,7 +3555,7 @@ This driver is known to have stability and performance issues with Olive. It is Pixel Sampler - + Пипетка @@ -3989,13 +4072,13 @@ This driver is known to have stability and performance issues with Olive. It is olive::Project - + Root - - + + (untitled) (без названия) @@ -4003,22 +4086,22 @@ This driver is known to have stability and performance issues with Olive. It is olive::ProjectExplorer - + &New &Создать - + &Import... &Импортировать… - + Confirm Item Deletion Подтвердите удаление объекта - + The item "%1" is currently connected to the following nodes: %2 @@ -4027,52 +4110,52 @@ Are you sure you wish to delete this footage? - + %1 (%2) %1 (%2) - + Open in New Tab Открыть в новой вкладке - + Open in New Window Открыть в новом окне - + Reveal in Explorer Открыть в Проводнике - + Reveal in Finder Открыть в Finder - + Reveal in File Manager Открыть в файловом менеджере - + Pre-Cache Предкэширование - + No sequences exist in project - + For "%1" - + P&roperties С&войства @@ -4150,17 +4233,17 @@ Are you sure you wish to delete this footage? olive::ProjectPanel - + Folder Папка - + Project Проект - + (none) (нет) @@ -4272,22 +4355,32 @@ Are you sure you wish to delete this footage? olive::ProjectViewModel - + Name Название - + Duration Длительность - + Rate Частота - + + Modified + Изменено + + + + Created + Создано + + + Move Items Переместить объекты @@ -4362,17 +4455,17 @@ Are you sure you wish to delete this footage? olive::Sequence - + Video Tracks Видеодорожки - + Audio Tracks Звуковые дорожки - + Subtitle Tracks Дорожки субтитров @@ -4420,12 +4513,12 @@ Are you sure you wish to delete this footage? Введите название этой последовательности - + Confirm Set As Default - + Are you sure you want to set the current parameters as defaults? @@ -4468,12 +4561,17 @@ Are you sure you wish to delete this footage? Качество: - + + Auto-Cache: + Автокэширование: + + + Save Preset Сохранить профиль - + (%1x%2) (%1x%2) @@ -4516,42 +4614,42 @@ Are you sure you wish to delete this footage? PAL - + %1 23.976 FPS %1 23,976 к/с - + %1 25 FPS %1 25 к/с - + %1 29.97 FPS %1 29,97 к/с - + %1 50 FPS %1 50 к/с - + %1 59.94 FPS %1 59,94 к/с - + %1 Standard - + %1 Widescreen - + Delete Preset Удалить профиль @@ -4569,12 +4667,12 @@ Are you sure you wish to delete this footage? --- - + --- Invalid Value - + Некорректное значение @@ -4601,7 +4699,7 @@ Are you sure you wish to delete this footage? Generate a solid color. - + Создать сплошную заливку. @@ -4609,6 +4707,39 @@ Are you sure you wish to delete this footage? Цвет + + olive::SpeedDurationDialog + + + Speed/Duration + Скорость и длительность + + + + Speed: + Скорость: + + + + Duration: + Длительность: + + + + Link Speed and Duration + Связать скорость и длительность + + + + Ripple Trailing Clips + + + + + Rippling is a stub and will not do anything. Do you wish to continue? + + + olive::StringSlider @@ -4731,7 +4862,7 @@ Are you sure you wish to delete this footage? Enable HTML - + Включить HTML @@ -4808,7 +4939,7 @@ Are you sure you wish to delete this footage? Time Remap - + Переназначить время @@ -4819,28 +4950,40 @@ Are you sure you wish to delete this footage? olive::TimelinePanel - + Timeline Монтажный стол + + olive::TimelineView + + + In: %1 +Out: %2 +Duration: %3 + Начало: %1 +Конец: %2 +Длительность: %3 + + olive::TimelineWidget - - + + Properties Свойства - + Use Audio Time Units - + Show Waveforms - + Показывать волновую форму @@ -4922,42 +5065,42 @@ Are you sure you wish to delete this footage? olive::Track - + Track Дорожка - + Node for representing and processing a single array of Blocks sorted by time. Also represents the end of a Sequence. - + Blocks Блоки - + Muted Приглушено - + Video %1 Видео %1 - + Audio %1 Звук %1 - + Subtitle %1 Субтитры %1 - + Track %1 Дорожка %1 @@ -5035,38 +5178,38 @@ Are you sure you wish to delete this footage? Transform an image in 2D space. Equivalent to multiplying by an orthographic matrix. - + Преобразует изображение в 2D-пространстве. Эквивалент умножения на прямоугольную матрицу. olive::TransitionBlock - + From От - + To До - + Curve Кривая - + Linear Линейный - + Exponential Экспоненциальный - + Logarithmic Логарифмический @@ -5220,12 +5363,12 @@ Are you sure you wish to delete this footage? Divider: - + Делитель: Stream Index: - + Индекс потока: @@ -5298,45 +5441,50 @@ Are you sure you wish to delete this footage? olive::ViewerOutput - + Viewer Монитор - + Interface between a Viewer panel and the node system. - + %1 FPS %1 к/с - + %1 Hz %1 Гц - + Video Parameters Параметры видео - + Audio Parameters Параметры звука - + Texture Текстура - + Samples Сэмплы + + + Auto-Cache + Автокэширование + olive::ViewerPanel @@ -5349,98 +5497,93 @@ Are you sure you wish to delete this footage? olive::ViewerWidget - + Error Ошибка - + No in or out points are set to cache. - - + + Safe Margins Безопасная область - + Zoom Масштаб - + Fit Уместить - + %1% %1% - + Full Screen Полноэкранный режим - + Screen %1: %2x%3 Экран %1: %2×%3 - + Deinterlace - + Scopes Анализаторы - + Cache Кэш - - Auto-Cache - Автокэширование - - - + Show FPS Показывать частоту кадров - + Cache Entire Sequence Закэшировать всю последовательность - + Cache Sequence In/Out Закэшировать вход/выход последовательности - + Off Выкл. - + On Вкл - + Custom Aspect Другое соотношение - + Show Audio Waveform Показывать волновую форму @@ -5456,7 +5599,7 @@ Are you sure you wish to delete this footage? Adjusts the volume of an audio source. - + Изменить громкость источника звука. From bdbeb111e81c0ecf35997f6588dc0898af744944 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Sat, 7 Aug 2021 20:37:40 -0700 Subject: [PATCH 4/4] ui: make color setting undoable --- app/widget/nodeview/nodeview.cpp | 6 +++++- app/widget/nodeview/nodeviewundo.cpp | 22 ++++++++++++++++++++ app/widget/nodeview/nodeviewundo.h | 21 +++++++++++++++++++ app/widget/timelinewidget/timelinewidget.cpp | 6 +++++- 4 files changed, 53 insertions(+), 2 deletions(-) diff --git a/app/widget/nodeview/nodeview.cpp b/app/widget/nodeview/nodeview.cpp index e804391e1..da7f65da5 100644 --- a/app/widget/nodeview/nodeview.cpp +++ b/app/widget/nodeview/nodeview.cpp @@ -363,9 +363,13 @@ void NodeView::Duplicate() void NodeView::SetColorLabel(int index) { + MultiUndoCommand *command = new MultiUndoCommand(); + for (Node* node : qAsConst(selected_nodes_)) { - node->SetOverrideColor(index); + command->add_child(new NodeOverrideColorCommand(node, index)); } + + Core::instance()->undo_stack()->push(command); } void NodeView::ZoomIn() diff --git a/app/widget/nodeview/nodeviewundo.cpp b/app/widget/nodeview/nodeviewundo.cpp index 0197dcf94..3b43a7b9a 100644 --- a/app/widget/nodeview/nodeviewundo.cpp +++ b/app/widget/nodeview/nodeviewundo.cpp @@ -171,4 +171,26 @@ Project *NodeRenameCommand::GetRelevantProject() const return nodes_.isEmpty() ? nullptr : nodes_.first()->project(); } +NodeOverrideColorCommand::NodeOverrideColorCommand(Node *node, int index) : + node_(node), + new_index_(index) +{ +} + +Project *NodeOverrideColorCommand::GetRelevantProject() const +{ + return node_->project(); +} + +void NodeOverrideColorCommand::redo() +{ + old_index_ = node_->GetOverrideColor(); + node_->SetOverrideColor(new_index_); +} + +void NodeOverrideColorCommand::undo() +{ + node_->SetOverrideColor(old_index_); +} + } diff --git a/app/widget/nodeview/nodeviewundo.h b/app/widget/nodeview/nodeviewundo.h index fcf23ae92..f678007b1 100644 --- a/app/widget/nodeview/nodeviewundo.h +++ b/app/widget/nodeview/nodeviewundo.h @@ -342,6 +342,27 @@ private: }; +class NodeOverrideColorCommand : public UndoCommand +{ +public: + NodeOverrideColorCommand(Node *node, int index); + + virtual Project * GetRelevantProject() const override; + +protected: + virtual void redo() override; + + virtual void undo() override; + +private: + Node *node_; + + int old_index_; + + int new_index_; + +}; + } #endif // NODEVIEWUNDO_H diff --git a/app/widget/timelinewidget/timelinewidget.cpp b/app/widget/timelinewidget/timelinewidget.cpp index 92df030d0..0a921eb9d 100644 --- a/app/widget/timelinewidget/timelinewidget.cpp +++ b/app/widget/timelinewidget/timelinewidget.cpp @@ -720,9 +720,13 @@ void TimelineWidget::ToggleSelectedEnabled() void TimelineWidget::SetColorLabel(int index) { + MultiUndoCommand *command = new MultiUndoCommand(); + foreach (Block* b, selected_blocks_) { - b->SetOverrideColor(index); + command->add_child(new NodeOverrideColorCommand(b, index)); } + + Core::instance()->undo_stack()->push(command); } void TimelineWidget::NudgeLeft()