From 25f978a0898d9479b6b3620b5895c4b93357058e Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 31 Aug 2020 15:27:44 +0200 Subject: [PATCH 01/33] QmlDesigner: Update StudioWelcome tutorials Change-Id: Ic5053eee4df2fa559b18fc77330b7837c146e2ff Reviewed-by: Brook Cronin Reviewed-by: Leena Miettinen Reviewed-by: Thomas Hartmann --- .../qml/welcomepage/TutorialsModel.qml | 42 ++++++++++++++++++ .../images/Qt_QT_animatedImage.png | Bin 0 -> 30685 bytes .../qml/welcomepage/images/Qt_QT_bindings.png | Bin 0 -> 30389 bytes .../qml/welcomepage/images/Qt_QT_nav.png | Bin 0 -> 30380 bytes .../images/Qt_QT_sliderControl.png | Bin 0 -> 22870 bytes .../welcomepage/images/Qt_QT_textElement.png | Bin 0 -> 24688 bytes .../images/coffeemachinedemo_thumbnail.png | Bin 41491 -> 38787 bytes .../welcomepage/images/sketchTutorial_1.png | Bin 0 -> 15964 bytes .../welcomepage/images/sketchTutorial_2.png | Bin 0 -> 18609 bytes .../qml/welcomepage/images/webinar1.png | Bin 54944 -> 54826 bytes 10 files changed, 42 insertions(+) create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_bindings.png create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png create mode 100644 src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png diff --git a/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml b/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml index a32dd6e1a84..1e538ced8f6 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml +++ b/src/plugins/studiowelcome/qml/welcomepage/TutorialsModel.qml @@ -91,4 +91,46 @@ ListModel { thumbnail: "images/what_is_new_15.png" url: "https://www.youtube.com/watch?v=e-HAZrisi5o" } + + ListElement { + displayName: "Qt Design Studio QuickTip: UI Navigation" + thumbnail: "images/Qt_QT_nav.png" + url: "https://youtu.be/RfEYO-5Mw6s" + } + + ListElement { + displayName: "Qt Design Studio QuickTip: Text Element" + thumbnail: "images/Qt_QT_textElement.png" + url: "https://youtu.be/yOUdg1o2KJM" + } + + ListElement { + displayName: "Qt Design Studio QuickTip: Animated Image" + thumbnail: "images/Qt_QT_animatedImage.png" + url: "https://youtu.be/DVWd_xMMgvg" + } + + ListElement { + displayName: "Qt Design Studio QuickTip: Slider Control" + thumbnail: "images/Qt_QT_sliderControl.png" + url: "https://youtu.be/Ed8WS03C-Vk" + } + + ListElement { + displayName: "Qt Design Studio QuickTip: Bindings" + thumbnail: "images/Qt_QT_bindings.png" + url: "https://youtu.be/UfvA04CIXv0" + } + + ListElement { + displayName: "Sketch Bridge Tutorial - Part 1" + thumbnail: "images/sketchTutorial_1.png" + url: "https://www.qt.io/blog/qt-design-studio-sketch-bridge-tutorial-part-1" + } + + ListElement { + displayName: "Sketch Bridge Tutorial - Part 2" + thumbnail: "images/sketchTutorial_2.png" + url: "https://www.qt.io/blog/qt-design-studio-sketch-bridge-tutorial-part-2" + } } diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png b/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_animatedImage.png new file mode 100644 index 0000000000000000000000000000000000000000..73537facb179b4907fd30faf506219e2ab79460d GIT binary patch literal 30685 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 S=G+Vn3=E#GelF{r5}E*2+&_W< literal 0 HcmV?d00001 diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png b/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_nav.png new file mode 100644 index 0000000000000000000000000000000000000000..b9d5b100b0ea503dda352f70c1cd11a2615ab531 GIT binary patch literal 30380 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 Zow3Fj=dUz7&%nUI;OXk;vd$@?2>=5-Xq^B6 literal 0 HcmV?d00001 diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png b/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_sliderControl.png new file mode 100644 index 0000000000000000000000000000000000000000..158dfa7dd7371aa02656ea771c01d83a3b5d6719 GIT binary patch literal 22870 zcmeAS@N?(olHy`uVBq!ia0y~yVEDzrz_5dZje&vTRL#dI28KvkPZ!6Kid%2@vd@sd zI!o=$9fR_;`EzIfEq^}$?##-v=kxb|FFLqza*;)lyXV@x+iztG&RM1(Ff%*GHalf9 zZ_I%N9|Jb&q9%P$SaPDS9ao_v@bAy-OP+h4K>Y3F%|M})Cq09Z|YR&y#^RVV2 zA4B;cul<+SmsAJ)@f>>c#V=GvZL;yJ$wxEf`y-n6Uw-L*zAmCE+2`q3owFY^zMlD5 z_c$UsEpuP|w1xLW&VQeN?5ibX$>hyVY{7=@99>6}WWuu!Pug*8rpx}QxZ@=<%$I*y zUaHMocG)^Da7xyEpU3xGUz)6+B$;#C5oYAsRiSVV+yB_ zJ(7GKYt$>Iw09=+<%yjeB+e_zp4Yn|TvVhR9+1vg{KKbj@4h|yd*7WcN|A~3cKtZt zyxPIs(w3!&zwr+9)gvPNHmj`bf7h+L!+q1=%_7Garp2uMax%n*-}_N)w&5}#A@9%M zuYB4$f3Cb-Ti05s^6PA=^lbZce?A?rJYUy)e}3EFjXDgmrt0b21?uw{wR@O4XY;X7&4G?vy24G2J~fsh}+}vP3W7x9!x88$^yzcvo!HdvEKl zVxM&O={aWwb?e!uJ$RooXJwG|^luL0d24+RuAQ3sX5NXCZ;|PlyZSfDl*pe=sjp() zzCmZ#(M=-HRZj29Ucb#Dyd?YVmeY#fP2R?HEzB;Tunju>{czEY-%B4UoiUlFFvH6{ zds^f3v`jCDs$B=v)=s|9S0%sOx8y^~ef7&1E2iuIo%Zy>oRrA28J@R49J{pP&}NY} zD}0=_%~n4@raA54#*I2U0&mPrC#bbg{nEHj>dDFoIg0G)^;~jPD!#`dL1zU)%&aG7u``V+^eSX^7>didy;@@wD+;dF5yT7^5 z_G`kwmDba(E-2gFi%<$b7IMc#ICgr^>g-L|m)uahwRY;yt2_T>ndzC{i#@q3YL$%f z=j9i}cdgs{@5z15;NNn8wB`q%{ry4xXSGV>>>uy#O&7ctTkuKyDMRW3-Y?%uP0#kN z&U^HIrp<-qqN2UcaweQg7c(9i)_0Wfb9p|LUGYdw>b`Mef=6GI%iH|9Ss!@44L!Pk zZmn7Nq(SfHlTM4u9q%Te+4;fjmwiQpJW-08Q*O{5H_i9nL!ELcOIc$7Of1SITyD@q(--}4@fQ!<5wkI>R%K6E^ zF{`g%Gfyuniph5E7k{00o4z8|lgX?6iDJ~ z4(Gc{=f1r0@A?+kowH3IU%&5qzFboJ#mS}hUiS{=l>JED_$zT+*fP(kFB9b=JJy7~ ztPJu_oYJ-4anj1(Ag`-S)Jmt{nky_?d*t@fj@^eJUVmZxdvZ;k86#)V_uyKn#K*pn#ot^9SyCl}f8EwXZQS+cx!Kbn_ut<6(I2L&QB;{w_#?DJCv@3!-Dz9YV~p-~NA)ib z`e~p=Vy$a@@bcQ8$3}n87O}ruvGwu$dn=j_ zK5oAGta;+Rn+_==51S&*VxDF#QP}O)v{$KT#;3axn4x!i9Hx z>!pr<`0gG3sPC%kj^wGcPl(PA+x?nR^l@MRsgJ+QqZbD*DPBRsMIkpEnoA;CeR_>Ge>nr%-=J9>o!l4IDP8lal^Pj*Hf>uBrv(<&OE{y zKJ`S1)HmB%U6YrDtn-|FZOVh~@6Ftm=ev6tuw7c+<&kSBAlaIt>>K6h%9!-Zj@dr$ z%f^mvi75dY%KMC4zj=L6N&FtNOK(-~nPR`z>Ww$<^Xi=2-Eq}l$Los!o@y)6d$WTd z?$x&4ZroWu@kQjLz4c3rH{SQOxX^lIo&(Q!Es3B-ecXX_)l3>^Pre%0=(dLCzsVk< z{qfhj92_0uJ(VigPTpr6>Eh24wYD*O(ceWMCU!U66RF&1RQ1n@v837fj)Y{?pDho9 zJPW5-%rO;H=a|mb!!<|e+TY-ZC0*Ayn9R5TQ+a7ZLDT!jrT^w^+);KZNZ#9tDN#@; z(BeX?pxqvVx63i+&|*d4=}2T2T7zJQaBotCYY3I#j(+%RZ&>9 zGDT|n!6d1j2h?~=#H#mSe(~W@l5(G))zAMjQ9bu{Rx28qsD7MQY&V-H%I}*&Qes2j zuQ=~5lf;@uOWqb4*Unmc{;Al@inZR0I$qB#ieGh7^!bcKI}H}ho|~Gezf;eB{dci~ zX-&U%E;HV_xg{@q=54?Ku2zf}f=i|t+**C{MrhxDd4GnucL!y&y;b+tm~LOh?oyU6 zaYB}>p~y=iE~@eV+MLGv|9i~Oymnu3^%(nwyvHe9)K~qglaZ>uDE)s&S4fkpitd_{ z_OI(10`A@S+9!JKq*uzclZy=6Qp6a4Rj-}h5ZC``vg5JJa4RO&rg-9+ifJ=$;H_qe-w_J4#^Y&v7{^iwePe0hzF01935q`VFW|`oH zna|#DJNGT>*4$Z{NzuNh85fpv{;LZWuAD#9Q{>9Y*u+JcdPs>OWT_YzWwoGo)2^v@AG=aR6CQk{^urkvAHqrqRY(^-=6fX`255D z$MvncEtkDj7A($XDRlX{^{8Usxl@ULM=l!63ViYQ>x-P9eb(6b+wD-Mxhv;4$huG?9mfe+~u?U{JPg^~JPDc8O8ZV6wGJumd-_H|G z#YOwY?@38}cGPcNGtt}O@1rk#e-cxJU)q$(|+6 zp@#hyTLtSQZuKl-WS6SBD*ik_R`kZclah58O3Iu0Vvm2FZC>z}ZTaj+lmEZo^EGo4 zgUqFG(QCC0-S^A7l-u^kM14PN5@%AJDR@~sJ?74WX)1Y#?#4Ge^q;&K8|aY!jc+GyJ8@|J^ZMci>n9wr`2Is((BXb{s{OyOi_2KTw595= z_J8@i+OhNDvP*HYjkX?F7Cq+ozsMxQ{bJpdhI2+NLSg5{J9sRfevs&y6U{Kg?b^2` zYu;tf_{n^}+o*5gz>vHZh zy3l{$rfc`US8di}vnPDN%5cY}=)YCo%wFqhR+k^WV4Y_4WTsa~m-31OL0rvyoo;t7 zEa>T9d?KvRjV=7m@1?I|r?G7KbXGNqhqqf|qIXSxPD%Io1+y1-F-d0Vv|jt9aAW7k z8U2m@s?V4v0VW!{8t;}+JWC1sCqIP@R9%Idy-@yF?V3*SB4*^#^TRsMVR z1(A=X54DKP2)Au(v_HeeG&jDUHT_|PeNe&E`k31?vfF%Ix39fy@b*nHlg zPr~>lN(CR5UOWWLUzkzVXBTX0^g@v)GRZrW}8;Hm`e8MZ)zC z?U|iNJ`2y}3{lILyjA|D_qUqg;WNkQA3kh6f8qPf7xN!vRPoT1_XLrsuEed=7rU=ll&HUNvcqe(N5c7(TOUGfzE4VL`FJQK zSXzRAZ?M?i0+Jb?J-jFYynrJGcH@drG%-C+Ax;--*{dXK(sY zFFNnN+Qg6m9qGRwRuS{sckh4M?!8@)y>Z{uLymtED~nIsnmt%{y7tjer6Y6m!o<}1 zia0m#Dqax%R?Z+?)GX(Q+(JDTk=EDdc}cIo&6O}KvibC=aI%TouBpGyXm5DD@TGs3 z;TLHOvECPPvtAr2w9txAc*9b(dM%URbotNsYUHn{sJCaEtL)N@j^UTF@#7BQezYm? z(Kgi=7waW{@kxrONJTYiosa1W{BE!D&bs7H?FsEo2NOyj9A3J*U~ZjE{p2!}zD;Lx zE~j2wCy+0HS6T3L%f8hLi9N>Q#|(~X7L@XpJUX^4zfHhmJ-hF_a8LidKQ|dN_s5+5 zCZ;Qc&XH!gPTI*~zX;2(Fs5JsBRqH2==#?^ zoY;}RccpG0a|!F}YLN@FXZmHWza{?vw^+jLPaTi6A>(0ppC#uDXV^V9d~>@#;7

  • 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 TLz4vq0|SGntDnm{r-UW|tYIL8 literal 0 HcmV?d00001 diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png b/src/plugins/studiowelcome/qml/welcomepage/images/Qt_QT_textElement.png new file mode 100644 index 0000000000000000000000000000000000000000..784a3c57ba2d2eea6aca440c16ccdcb2698fc5be GIT binary patch literal 24688 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

    JsP8 z7G3W)y>2{uyW;q&iL*CGaC=VCvbZ{t@9d*9J0lBicn=D`+O_%7EAu%=75{E_>z$ez zwXk>Uok@51szv=+*U_%e`9p4L-ke+2=E;rg`CeXnQ|PjmX|?H-fUw!ODvs>iY!Pcd z@4MD&Lk8oAJ6rdL1$yjhIFh7X)fBZzRn>6vPW{OWzmD&F7xC4hKm4nhvekr%QL%0= zR?9X9xce5UzFIp^>1bDsh!9800>4=kSww8x3?x|rn&CDW%_%q7NJ*A0YAV`pB=o%yS@ z^qO_}R1Kj;i)Y_FaY?tbF}V6~h2fMB=aqC$T$O%&rbo=^cD^pRgJG=Ov$lP+l2p?_ zKAVu(Q|R_3R%|`%DVM7gJcEmsn{0}1KY7I^Yibqw(LlyX_`ss&aS^^AA1>hd$~THkckbu*4M)&>-Oq|;pDGMYME2h)Lve#%9=j&Rhtf%=hdqc zLb+GI9e%WCxAEkA>mOK3ygqH&&siePc=y@2ua}gHSZl&J+g{3#`hI=$eC;2XS3Q@? zo14s8?z_FuvgqX;Y0>A~vvS>acFQHKsMZZ}Uw`g}o$gVMh>dfELW;yoLKVI<-+iYg z7kYEzXZbJRUBdQ;`k&$8OLSE{YWGOQK%{?(Mw$cv^~?PZtvlkTE*8G~24^Qtg zUhF?bCpPZ9v-xYq(cTKc+e<8vrhKN{H@hmNk|e&IG*x#wH|bk)uof&t3AHJc@mxuiW>wBo#9633HQOlc{Up!J<9kAdYpS;oYsVhb5ds*flF}^1h*~SDpO7?i^D?6_3NFIFYnT z73;Sjn>DZFz^gSf!N#Yicr)*mNxpOb@`l7Z*2r(hJEvD%^ZjkPoO$-t1BcGASJpJh zt>-dLQ^|O-QGG`2tge}BnvZGkHNWRz?ktnOY=z<_$94B##Z6YTmh0}kHY0tpsPmT> z`+OdM+~k^^rX+mfb?1bg8HUW7~+KcyvMXLpIMcGEo4qr_%pbtvTdALHito~6^P(%6}9!eA{&0n0`Q+-GN4<_AdmOS6NQl|g*1M4Fy zXLi5&ZuU#2|7k?G`HAL6z1ON!O)GUy9Zr!tej;SghfNIG$C}cv{kU?jecn&AO&&(Q z-JF*1xp$30i}rH9U!Y}~Wr zmP4M6yzM;Ot0}v8-%*n~d`9nHd~nj~`n*o-tHK;=s`F#iF1TyD?ff8;DQ|jwXX(7? z*L6C_Ot{T|`IP_w literal 0 HcmV?d00001 diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png b/src/plugins/studiowelcome/qml/welcomepage/images/coffeemachinedemo_thumbnail.png index 565b1d62b1ad6986e3622540e9d4a8b54189eebe..ced7ae80d1fd989ef44cafb78a120b8b9a69ec36 100644 GIT binary patch literal 38787 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

    A!DpRgd;KIg$&$)+9B(1AvEN16d5bHDX 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 R7#J8BJYD@<);T3K0RUZua?Ah# diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png b/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_1.png new file mode 100644 index 0000000000000000000000000000000000000000..2285b93d6427fd6ec224fb4dec5ad640d3833e8a GIT binary patch literal 15964 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 G5}E)su+qi= literal 0 HcmV?d00001 diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png b/src/plugins/studiowelcome/qml/welcomepage/images/sketchTutorial_2.png new file mode 100644 index 0000000000000000000000000000000000000000..fec8c65ea39c56ade65c85ab5bcad3fd730678e3 GIT binary patch literal 18609 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

    Mh?c|#CVP5ga{$Br&`TmJ7 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 HN@xNA_iD?0 literal 0 HcmV?d00001 diff --git a/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png b/src/plugins/studiowelcome/qml/welcomepage/images/webinar1.png index ba24ffc3bf2e9a02afd9a669fc27a3db94ede9be..634b22cc74c301a53ec6169696302da8e1ee2f47 100644 GIT binary patch literal 54826 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 literal 54944 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 From 1bc03df197ad67d4942dc924037e97d14baef733 Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Fri, 28 Aug 2020 16:07:32 +0200 Subject: [PATCH 02/33] QmlDesigner: Fix indirect connection targets Fix ConnectionView ComboBox to also include connection targets for alias and custom properties in inherited external components. Change-Id: Ic130adebef9de93efef5d2ed61178fed45242cb7 Reviewed-by: Thomas Hartmann --- .../qmldesigner/components/connectioneditor/delegates.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/components/connectioneditor/delegates.cpp b/src/plugins/qmldesigner/components/connectioneditor/delegates.cpp index 83682d5d448..67a8473e5a4 100644 --- a/src/plugins/qmldesigner/components/connectioneditor/delegates.cpp +++ b/src/plugins/qmldesigner/components/connectioneditor/delegates.cpp @@ -298,7 +298,7 @@ QWidget *ConnectionDelegate::createEditor(QWidget *parent, const QStyleOptionVie auto addMetaInfoProperties = [&](const NodeMetaInfo& itemMetaInfo, QString itemName){ if (itemMetaInfo.isValid()) { - for (const PropertyName &propertyName : itemMetaInfo.directPropertyNames()) { + for (const PropertyName &propertyName : itemMetaInfo.propertyNames()) { TypeName propertyType = itemMetaInfo.propertyTypeName(propertyName); if (!propertyType.isEmpty()) { //first letter is a reliable item indicator From b0c47267d812b378042ae1262b987368569e4419 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 31 Aug 2020 09:24:17 +0200 Subject: [PATCH 03/33] QmlDesigner: Inline vector stream operators Task-number: QTCREATORBUG-24548 Change-Id: I01d1b6e12c04c4ea47279e3a5046a0d3e34a5c09 Reviewed-by: Thomas Hartmann --- .../qmlpuppet/commands/captureddatacommand.h | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h b/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h index f682c035e9f..449a9a2e4b2 100644 --- a/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h +++ b/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h @@ -29,10 +29,43 @@ #include "imagecontainer.h" -#include +#include namespace QmlDesigner { +template +QDataStream &operator<<(QDataStream &out, const std::vector &vector) +{ + out << quint64(vector.size()); + + for (auto &&entry : vector) + out << entry; + + return out; +} + +template +QDataStream &operator>>(QDataStream &in, std::vector &vector) +{ + vector.clear(); + + quint64 size; + + in >> size; + + vector.reserve(size); + + for (quint64 i = 0; i < size; ++i) { + Type entry; + + in >> entry; + + vector.push_back(std::move(entry)); + } + + return in; +} + class CapturedDataCommand { public: From 71202abcbc9173daa92b816978b0c9830cb728d5 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 31 Aug 2020 20:03:34 +0200 Subject: [PATCH 04/33] QmlDesigner: Do not show items not available fot QtForMCU Change-Id: Ia61634a5108db51b49241fd58b73ab71e9e5e2e8 Reviewed-by: Thomas Hartmann --- .../itemlibrary/itemlibrarymodel.cpp | 47 +++++++++++++++++-- 1 file changed, 43 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp index 32db8152362..273d4adf5a8 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp @@ -33,6 +33,9 @@ #include #include +#include +#include + #include #include @@ -197,11 +200,47 @@ void ItemLibraryModel::update(ItemLibraryInfo *itemLibraryInfo, Model *model) forceVisiblity = isItem; } + DesignDocument *designDocument = QmlDesignerPlugin::instance() + ->documentManager() + .currentDesignDocument(); - if (valid - && (isItem || forceVisiblity) //We can change if the navigator does support pure QObjects - && (entry.requiredImport().isEmpty() - || model->hasImport(entryToImport(entry), true, true))) { + if (designDocument && designDocument->isQtForMCUsProject()) { + const QList blockTypes = {"QtQuick.AnimatedImage", + "QtQuick.BorderImage", + "QtQuick.FocusScope", + "QtQuick.TextInput", + "QtQuick.TextEdit", + "QtQuick.Flow", + "QtQuick.Grid", + "QtQuick.GridView", + "QtQuick.Controls.ButtonGroup", + "QtQuick.Controls", + "QtQuick.Controls.Container", + "QtQuick.Controls.DelayButton", + "QtQuick.Controls.ComboBox", + "QtQuick.Controls.Frame", + "QtQuick.Controls.GroupBox", + "QtQuick.Controls.ItemDelegate", + "QtQuick.Controls.SpinBox", + "QtQuick.Controls.RadioDelegate", + "QtQuick.Controls.RoundButton", + "QtQuick.Controls.ScrollView", + "QtQuick.Controls.RangeSlider", + "QtQuick.Controls.ToolBar", + "QtQuick.Controls.TooButton", + "QtQuick.Controls.TabBar", + "QtQuick.Controls.TabButton", + "QtQuick.Controls.SwitchDelegate", + "QtQuick.Controls.TextArea", + "QtQuick.Controls.TextField"}; + + if (blockTypes.contains(entry.typeName())) + valid = false; + } + + if (valid && (isItem || forceVisiblity) //We can change if the navigator does support pure QObjects + && (entry.requiredImport().isEmpty() + || model->hasImport(entryToImport(entry), true, true))) { QString itemSectionName = entry.category(); qCInfo(itemlibraryPopulate) << "Adding:" << entry.typeName() << "to:" << entry.category(); ItemLibrarySection *sectionModel = sectionByName(itemSectionName); From e65e4b81ea1c84355f649d9eac885ba1acb51c06 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Tue, 1 Sep 2020 11:26:31 +0200 Subject: [PATCH 05/33] QmlDesigner: Fix build of tests Amends b0c47267d812. Change-Id: I62c8007156a0f9cebdcc83c2f4cef135e19d27e2 Reviewed-by: Marco Bubke --- share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h | 1 + 1 file changed, 1 insertion(+) diff --git a/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h b/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h index 449a9a2e4b2..6c3715dd5fc 100644 --- a/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h +++ b/share/qtcreator/qml/qmlpuppet/commands/captureddatacommand.h @@ -26,6 +26,7 @@ #pragma once #include +#include #include "imagecontainer.h" From f43b81ae6f0be61b492e07fc306b7a2dc8a2ef3d Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Mon, 31 Aug 2020 18:37:22 +0200 Subject: [PATCH 06/33] QmlDesigner: Disable Properties unavailable in QUL Disabling properties in: MouseArea Flickable Image Text (including Font) Change-Id: Id0a44fa73ff80bf4749c0bdc0f9eac3e2f488762 Reviewed-by: Thomas Hartmann --- .../QtQuick/ImageSpecifics.qml | 5 +++ .../QtQuick/MouseAreaSpecifics.qml | 15 +++++++ .../QtQuick/TextSpecifics.qml | 1 + .../HelperWidgets/FlickableSection.qml | 32 ++++++++++++++ .../imports/HelperWidgets/FontSection.qml | 26 +++++++++-- .../HelperWidgets/FontStyleButtons.qml | 4 ++ .../HelperWidgets/StandardTextSection.qml | 25 ++++++++++- .../propertyeditor/propertyeditorvalue.cpp | 43 +++++++++++++++++-- 8 files changed, 142 insertions(+), 9 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml index 60b97a11796..864dd51ceb4 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml @@ -70,12 +70,14 @@ Column { Label { text: qsTr("Source size") + disabledState: !backendValues.sourceSize.isAvailable } SecondColumnLayout { Label { text: "W" width: 12 + disabledState: !backendValues.sourceSize_width.isAvailable } SpinBox { @@ -83,6 +85,7 @@ Column { minimumValue: 0 maximumValue: 8192 decimals: 0 + enabled: backendValue.isAvailable } Item { @@ -93,6 +96,7 @@ Column { Label { text: "H" width: 12 + disabledState: !backendValues.sourceSize_height.isAvailable } SpinBox { @@ -100,6 +104,7 @@ Column { minimumValue: 0 maximumValue: 8192 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml index 0ca7f3d888d..dd42326fe01 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/MouseAreaSpecifics.qml @@ -40,6 +40,7 @@ Column { Label { text: qsTr("Enabled") tooltip: qsTr("This property holds whether the item accepts mouse events.") + disabledState: !backendValues.enabled.isAvailable } SecondColumnLayout { @@ -47,6 +48,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.enabled text: backendValues.enabled.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { @@ -56,6 +58,7 @@ Column { Label { text: qsTr("Hover enabled") tooltip: qsTr("This property holds whether hover events are handled.") + disabledState: !backendValues.hoverEnabled.isAvailable } SecondColumnLayout { @@ -63,6 +66,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.hoverEnabled text: backendValues.hoverEnabled.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { @@ -72,6 +76,7 @@ Column { Label { text: qsTr("Accepted buttons") tooltip: qsTr("This property holds the mouse buttons that the mouse area reacts to.") + disabledState: !backendValues.acceptedButtons.isAvailable } SecondColumnLayout { @@ -80,6 +85,7 @@ Column { model: ["LeftButton", "RightButton", "MiddleButton", "BackButton", "ForwardButton", "AllButtons"] Layout.fillWidth: true scope: "Qt" + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -104,6 +110,7 @@ Column { Label { text: qsTr("Scroll gesture enabled") tooltip: qsTr("This property controls whether this MouseArea responds to scroll gestures from non-mouse devices.") + disabledState: !backendValues.scrollGestureEnabled.isAvailable } SecondColumnLayout { @@ -111,6 +118,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.scrollGestureEnabled text: backendValues.scrollGestureEnabled.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { @@ -120,6 +128,7 @@ Column { Label { text: qsTr("Cursor shape") tooltip: qsTr("This property holds the cursor shape for this mouse area.") + disabledState: !backendValues.cursorShape.isAvailable } SecondColumnLayout { @@ -133,6 +142,7 @@ Column { "DragMoveCursor", "DragLinkCursor"] Layout.fillWidth: true scope: "Qt" + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -141,6 +151,7 @@ Column { Label { text: qsTr("Prevent stealing") tooltip: qsTr("This property controls whether the mouse events may be stolen from this MouseArea.") + disabledState: !backendValues.preventStealing.isAvailable } SecondColumnLayout { @@ -148,6 +159,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.preventStealing text: backendValues.preventStealing.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { @@ -157,6 +169,7 @@ Column { Label { text: qsTr("Propagate composed events") tooltip: qsTr("This property controls whether composed mouse events will automatically propagate to other MouseAreas.") + disabledState: !backendValues.propagateComposedEvents.isAvailable } SecondColumnLayout { @@ -164,6 +177,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.propagateComposedEvents text: backendValues.propagateComposedEvents.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { @@ -176,6 +190,7 @@ Column { anchors.left: parent.left anchors.right: parent.right caption: qsTr("Drag") + visible: backendValues.drag_target.isAvailable SectionLayout { Label { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextSpecifics.qml index 550ffb32408..7b79e76f0c3 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/TextSpecifics.qml @@ -56,6 +56,7 @@ Column { anchors.left: parent.left anchors.right: parent.right caption: qsTr("Style Color") + visible: backendValues.styleColor.isAvailable ColorEditor { caption: qsTr("Style Color") diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml index 11f46d29c52..5501a14cda3 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml @@ -42,6 +42,7 @@ Section { Label { text: qsTr("Flick direction") + disabledState: !backendValues.flickableDirection.isAvailable } SecondColumnLayout { @@ -50,6 +51,7 @@ Section { model: ["AutoFlickDirection", "AutoFlickIfNeeded", "HorizontalFlick", "VerticalFlick", "HorizontalAndVerticalFlick"] Layout.fillWidth: true scope: "Flickable" + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -58,6 +60,7 @@ Section { Label { text: qsTr("Behavior") tooltip: qsTr("Determines whether the surface may be dragged beyond the Flickable's boundaries, or overshoot the Flickable's boundaries when flicked.") + disabledState: !backendValues.boundsBehavior.isAvailable } SecondColumnLayout { @@ -66,6 +69,7 @@ Section { model: ["StopAtBounds", "DragOverBounds", "OvershootBounds", "DragAndOvershootBounds"] Layout.fillWidth: true scope: "Flickable" + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -75,6 +79,7 @@ Section { Label { text: qsTr("Movement") tooltip: qsTr("Determines whether the Flickable will give a feeling that the edges of the view are soft, rather than a hard physical boundary.") + disabledState: !backendValues.boundsMovement.isAvailable } SecondColumnLayout { @@ -83,6 +88,7 @@ Section { model: ["FollowBoundsBehavior", "StopAtBounds"] Layout.fillWidth: true scope: "Flickable" + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -122,6 +128,7 @@ Section { Label { text: qsTr("Deceleration") tooltip: qsTr("Flick deceleration") + disabledState: !backendValues.flickDeceleration.isAvailable } SecondColumnLayout { @@ -130,6 +137,7 @@ Section { minimumValue: 0 maximumValue: 8000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -138,6 +146,7 @@ Section { Label { text: qsTr("Press delay") tooltip: qsTr("Holds the time to delay (ms) delivering a press to children of the Flickable.") + disabledState: !backendValues.pressDelay.isAvailable } SecondColumnLayout { @@ -146,6 +155,7 @@ Section { minimumValue: 0 maximumValue: 2000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -154,6 +164,7 @@ Section { Label { text: qsTr("Pixel aligned") tooltip: qsTr("Sets the alignment of contentX and contentY to pixels (true) or subpixels (false).") + disabledState: !backendValues.pixelAligned.isAvailable } SecondColumnLayout { @@ -161,6 +172,7 @@ Section { Layout.fillWidth: true backendValue: backendValues.pixelAligned text: backendValues.pixelAligned.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -171,6 +183,7 @@ Section { tooltip: qsTr("If set to true, then when the mouse or touchpoint moves far enough to begin dragging\n" + "the content, the content will jump, such that the content pixel which was under the\n" + "cursor or touchpoint when pressed remains under that point.") + disabledState: !backendValues.synchronousDrag.isAvailable } SecondColumnLayout { @@ -178,6 +191,7 @@ Section { Layout.fillWidth: true backendValue: backendValues.synchronousDrag text: backendValues.synchronousDrag.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -265,12 +279,15 @@ Section { Label { text: qsTr("Origin") + disabledState: (!backendValues.originX.isAvailable + && !backendValues.originY.isAvailable) } SecondColumnLayout { Label { text: "X" width: root.labelWidth + disabledState: !backendValues.originX.isAvailable } SpinBox { @@ -279,6 +296,7 @@ Section { maximumValue: 8000 implicitWidth: root.spinBoxWidth Layout.fillWidth: true + enabled: backendValue.isAvailable } Item { @@ -289,6 +307,7 @@ Section { Label { text: "Y" width: root.labelWidth + disabledState: !backendValues.originY.isAvailable } SpinBox { @@ -297,6 +316,7 @@ Section { maximumValue: 8000 implicitWidth: root.spinBoxWidth Layout.fillWidth: true + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -304,6 +324,10 @@ Section { Label { text: qsTr("Margins") + disabledState: (!backendValues.topMargin.isAvailable + && !backendValues.bottomMargin.isAvailable + && !backendValues.leftMargin.isAvailable + && !backendValues.rightMargin.isAvailable) } SecondColumnLayout { @@ -312,6 +336,7 @@ Section { Label { text: "Top" width: root.labelWidth + disabledState: !backendValues.topMargin.isAvailable } SpinBox { @@ -321,6 +346,7 @@ Section { decimals: 0 implicitWidth: root.spinBoxWidth Layout.fillWidth: true + enabled: backendValue.isAvailable } Item { @@ -331,6 +357,7 @@ Section { Label { text: "Bottom" width: root.labelWidth + disabledState: !backendValues.bottomMargin.isAvailable } SpinBox { @@ -340,6 +367,7 @@ Section { decimals: 0 implicitWidth: root.spinBoxWidth Layout.fillWidth: true + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -355,6 +383,7 @@ Section { Label { text: "Left" width: root.labelWidth + disabledState: !backendValues.leftMargin.isAvailable } SpinBox { @@ -364,6 +393,7 @@ Section { decimals: 0 implicitWidth: root.spinBoxWidth Layout.fillWidth: true + enabled: backendValue.isAvailable } Item { @@ -374,6 +404,7 @@ Section { Label { text: "Right" width: root.labelWidth + disabledState: !backendValues.rightMargin.isAvailable } SpinBox { @@ -383,6 +414,7 @@ Section { decimals: 0 implicitWidth: root.spinBoxWidth Layout.fillWidth: true + enabled: backendValue.isAvailable } ExpandingSpacer { } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml index 1261f2ee5ed..70bb8561233 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml @@ -153,12 +153,13 @@ Section { italic: fontSection.italicStyle underline: fontSection.underlineStyle strikeout: fontSection.strikeoutStyle - enabled: !styleComboBox.styleSet + enabled: !styleNameComboBox.styleSet } Label { text: qsTr("Font capitalization") toolTip: qsTr("Sets the capitalization for the text.") + disabledState: !getBackendValue("capitalization").isAvailable } ComboBox { @@ -166,6 +167,7 @@ Section { backendValue: getBackendValue("capitalization") model: ["MixedCase", "AllUppercase", "AllLowercase", "SmallCaps", "Capitalize"] scope: "Font" + enabled: backendValue.isAvailable } Label { @@ -178,38 +180,45 @@ Section { backendValue: getBackendValue("weight") model: ["Normal", "Light", "ExtraLight", "Thin", "Medium", "DemiBold", "Bold", "ExtraBold", "Black"] scope: "Font" - enabled: !styleComboBox.styleSet + enabled: !styleNameComboBox.styleSet } Label { text: qsTr("Style name") toolTip: qsTr("Sets the font's style.") + disabledState: !styleNameComboBox.enabled } ComboBox { - id: styleComboBox + id: styleNameComboBox property bool styleSet: backendValue.isInModel Layout.fillWidth: true backendValue: getBackendValue("styleName") model: styleNamesForFamily(fontComboBox.familyName) valueType: ComboBox.String + enabled: backendValue.isAvailable } Label { visible: showStyle text: qsTr("Style") + disabledState: !styleComboBox.enabled } ComboBox { + id: styleComboBox visible: showStyle Layout.fillWidth: true backendValue: (backendValues.style === undefined) ? dummyBackendValue : backendValues.style model: ["Normal", "Outline", "Raised", "Sunken"] scope: "Text" + enabled: backendValue.isAvailable } Label { text: qsTr("Spacing") + disabledState: (!getBackendValue("wordSpacing").isAvailable && + !getBackendValue("letterSpacing").isAvailable) } SecondColumnLayout { @@ -222,18 +231,19 @@ Section { Layout.fillWidth: true Layout.minimumWidth: 60 stepSize: 0.1 + enabled: backendValue.isAvailable } Label { text: qsTr("Word") tooltip: qsTr("Sets the word spacing for the font.") width: 42 + disabledState: !getBackendValue("wordSpacing").isAvailable } Item { width: 4 height: 4 } - SpinBox { maximumValue: 500 minimumValue: -500 @@ -242,17 +252,21 @@ Section { Layout.fillWidth: true Layout.minimumWidth: 60 stepSize: 0.1 + enabled: backendValue.isAvailable } Label { text: qsTr("Letter") tooltip: qsTr("Sets the letter spacing for the font.") width: 42 + disabledState: !getBackendValue("letterSpacing").isAvailable } } Label { visible: minorQtQuickVersion > 9 text: qsTr("Performance") + disabledState: (!getBackendValue("kerning").isAvailable && + !getBackendValue("preferShaping").isAvailable) } SecondColumnLayout { @@ -264,6 +278,7 @@ Section { backendValue: getBackendValue("kerning") tooltip: qsTr("Enables or disables the kerning OpenType feature when shaping the text. Disabling this may " + "improve performance when creating or changing the text, at the expense of some cosmetic features. The default value is true.") + enabled: backendValue.isAvailable } CheckBox { @@ -273,12 +288,14 @@ Section { tooltip: qsTr("Sometimes, a font will apply complex rules to a set of characters in order to display them correctly.\n" + "In some writing systems, such as Brahmic scripts, this is required in order for the text to be legible, whereas in " + "Latin script,\n it is merely a cosmetic feature. Setting the preferShaping property to false will disable all such features\nwhen they are not required, which will improve performance in most cases.") + enabled: backendValue.isAvailable } } Label { text: qsTr("Hinting preference") toolTip: qsTr("Sets the preferred hinting on the text.") + disabledState: !getBackendValue("hintingPreference").isAvailable } ComboBox { @@ -286,6 +303,7 @@ Section { backendValue: getBackendValue("hintingPreference") model: ["PreferDefaultHinting", "PreferNoHinting", "PreferVerticalHinting", "PreferFullHinting"] scope: "Font" + enabled: backendValue.isAvailable } } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontStyleButtons.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontStyleButtons.qml index ff06c1e1bdb..29803aa9665 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontStyleButtons.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontStyleButtons.qml @@ -37,6 +37,7 @@ ButtonRow { BoolButtonRowButton { buttonIcon: StudioTheme.Constants.fontStyleBold backendValue: bold + enabled: backendValue.isAvailable } Item { width: 4 @@ -45,6 +46,7 @@ ButtonRow { BoolButtonRowButton { buttonIcon: StudioTheme.Constants.fontStyleItalic backendValue: italic + enabled: backendValue.isAvailable } Item { width: 4 @@ -53,6 +55,7 @@ ButtonRow { BoolButtonRowButton { buttonIcon: StudioTheme.Constants.fontStyleUnderline backendValue: underline + enabled: backendValue.isAvailable } Item { width: 4 @@ -61,5 +64,6 @@ ButtonRow { BoolButtonRowButton { buttonIcon: StudioTheme.Constants.fontStyleStrikethrough backendValue: strikeout + enabled: backendValue.isAvailable } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml index 6132cfd2619..f7cf3be4abd 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml @@ -76,6 +76,7 @@ Section { Label { visible: showVerticalAlignment text: qsTr("Wrap mode") + disabledState: !backendValues.wrapMode.isAvailable } ComboBox { @@ -84,11 +85,13 @@ Section { backendValue: backendValues.wrapMode scope: "Text" model: ["NoWrap", "WordWrap", "WrapAnywhere", "Wrap"] + enabled: backendValue.isAvailable } Label { visible: showElide text: qsTr("Elide") + disabledState: !backendValues.elide.isAvailable } ComboBox { @@ -97,12 +100,14 @@ Section { backendValue: backendValues.elide scope: "Text" model: ["ElideNone", "ElideLeft", "ElideMiddle", "ElideRight"] + enabled: backendValue.isAvailable } Label { visible: showElide text: qsTr("Maximum line count") tooltip: qsTr("Limits the number of lines that the text item will show.") + disabledState: !backendValues.maximumLineCount.isAvailable } SpinBox { @@ -112,6 +117,7 @@ Section { minimumValue: 0 maximumValue: 10000 decimals: 0 + enabled: backendValue.isAvailable } Label { @@ -135,6 +141,7 @@ Section { Label { visible: showFormatProperty text: qsTr("Format") + disabledState: !backendValues.textFormat.isAvailable } ComboBox { scope: "Text" @@ -142,23 +149,27 @@ Section { model: ["PlainText", "RichText", "AutoText"] backendValue: backendValues.textFormat Layout.fillWidth: true + enabled: backendValue.isAvailable } Label { text: qsTr("Render type") toolTip: qsTr("Override the default rendering type for this item.") + disabledState: !backendValues.renderType.isAvailable } ComboBox { scope: "Text" model: ["QtRendering", "NativeRendering"] backendValue: backendValues.renderType Layout.fillWidth: true + enabled: backendValue.isAvailable } Label { visible: showFontSizeMode text: qsTr("Font size mode") toolTip: qsTr("Specifies how the font size of the displayed text is determined.") + disabledState: !backendValues.fontSizeMode.isAvailable } ComboBox { id: fontSizeMode @@ -167,17 +178,20 @@ Section { model: ["FixedSize", "HorizontalFit", "VerticalFit", "Fit"] backendValue: backendValues.fontSizeMode Layout.fillWidth: true + enabled: backendValue.isAvailable } Label { visible: showFontSizeMode text: qsTr("Minimum size") + disabledState: !backendValues.minimumPixelSize.isAvailable + && !backendValues.minimumPointSize.isAvailable } SecondColumnLayout { visible: showFontSizeMode SpinBox { - enabled: fontSizeMode.currentIndex !== 0 + enabled: (fontSizeMode.currentIndex !== 0) || backendValue.isAvailable minimumValue: 0 maximumValue: 500 decimals: 0 @@ -189,6 +203,7 @@ Section { text: qsTr("Pixel") tooltip: qsTr("Specifies the minimum font pixel size of scaled text.") width: 42 + disabledState: !backendValues.minimumPixelSize.isAvailable } Item { @@ -197,7 +212,7 @@ Section { } SpinBox { - enabled: fontSizeMode.currentIndex !== 0 + enabled: (fontSizeMode.currentIndex !== 0) || backendValue.isAvailable minimumValue: 0 maximumValue: 500 decimals: 0 @@ -209,6 +224,7 @@ Section { text: qsTr("Point") tooltip: qsTr("Specifies the minimum font point size of scaled text.") width: 42 + disabledState: !backendValues.minimumPointSize.isAvailable } } @@ -216,9 +232,11 @@ Section { visible: showLineHeight text: qsTr("Line height") tooltip: qsTr("Sets the line height for the text.") + disabledState: !lineHeightSpinBox.enabled } SpinBox { + id: lineHeightSpinBox visible: showLineHeight Layout.fillWidth: true backendValue: (backendValues.lineHeight === undefined) ? dummyBackendValue : backendValues.lineHeight @@ -226,12 +244,14 @@ Section { minimumValue: 0 decimals: 2 stepSize: 0.1 + enabled: backendValue.isAvailable } Label { visible: showLineHeight text: qsTr("Line height mode") toolTip: qsTr("Determines how the line height is specified.") + disabledState: !backendValues.lineHeightMode.isAvailable } ComboBox { visible: showLineHeight @@ -239,6 +259,7 @@ Section { model: ["ProportionalHeight", "FixedHeight"] backendValue: backendValues.lineHeightMode Layout.fillWidth: true + enabled: backendValue.isAvailable } } diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp index 62de72ad056..a27a5d1b7e5 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp @@ -271,21 +271,58 @@ static bool itemOrImage(const QmlDesigner::NodeMetaInfo &metaInfo) return false; } +static QList prepareNonMcuProperties() +{ + QList result; + + const QList itemProperties = {"layer", "opacity", "gradient", "smooth", "antialiasing", + "border", "baselineOffset", "focus", "activeFocusOnTab"}; + const QList mouseAreaProperties = {"propagateComposedEvents", "preventStealing", "cursorShape", + "scrollGestureEnabled", "drag", "acceptedButtons", "hoverEnabled"}; + const QList flickableProperties = {"boundsBehavior", "boundsMovement", + "flickDeceleration", "flickableDirection", + "leftMargin", "rightMargin", "bottomMargin", "topMargin", + "originX", "originY", + "pixelAligned", "pressDelay", "synchronousDrag"}; + const QList imageProperties = {"mirror", "mipmap", "cache", "autoTransform", "asynchronous", + "sourceSize", "smooth"}; + const QList textProperties = {"elide", "lineHeight", "lineHeightMode", "wrapMode", "style", + "styleColor", "minimumPointSize", "minimumPixelSize", "styleColor", + "fontSizeMode", "renderType", "textFormat", "maximumLineCount"}; + + result.append(itemProperties); + result.append(mouseAreaProperties); + result.append(flickableProperties); + result.append(imageProperties); + result.append(textProperties); + + return result; +} + bool PropertyEditorValue::isAvailable() const { - const QList mcuProperties = {"layer", "opacity", "gradient", "smooth", "antialiasing"}; + const QList nonMcuProperties = prepareNonMcuProperties(); + + const QByteArray fontPrefix = {"font"}; + const QList nonMcuFontProperties = {"wordSpacing", "letterSpacing", "hintingPreference", + "kerning", "preferShaping", "capitalization", + "strikeout", "underline", "styleName"}; const QList mcuTransformProperties = {"rotation", "scale", "transformOrigin"}; const QList list = name().split('.'); - const QByteArray pureName = list.first(); + const QByteArray pureName = list.constFirst(); QmlDesigner::DesignDocument *designDocument = QmlDesigner::QmlDesignerPlugin::instance() ->documentManager() .currentDesignDocument(); if (designDocument && designDocument->isQtForMCUsProject()) { - if (mcuProperties.contains(pureName)) + if (pureName == fontPrefix) { + if (nonMcuFontProperties.contains(list.constLast())) + return false; + } + if (nonMcuProperties.contains(pureName)) return false; if (mcuTransformProperties.contains(pureName) && !itemOrImage(m_modelNode.metaInfo())) return false; From 4473769bc466d62d5ac9bb26e813c513513ccfb2 Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Mon, 31 Aug 2020 11:08:41 +0200 Subject: [PATCH 07/33] AssetExport: Notify QML parsing errors QML can not be exported if the document have parsing errors Task-number: QDS-2667 Change-Id: I22075789cfa5853b1607c45e2b49bb761836c0d6 Reviewed-by: Leena Miettinen --- .../assetexporterplugin/assetexporter.cpp | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp b/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp index b975c228e67..bef733b27b7 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/assetexporter.cpp @@ -26,6 +26,8 @@ #include "componentexporter.h" #include "exportnotification.h" +#include "designdocument.h" +#include "qmldesignerplugin.h" #include "rewriterview.h" #include "qmlitemnode.h" #include "qmlobjectnode.h" @@ -163,7 +165,6 @@ void AssetExporter::exportComponent(const ModelNode &rootNode) Component exporter(*this, rootNode); exporter.exportComponent(); m_components.append(exporter.json()); - notifyProgress((m_totalFileCount - m_exportFiles.count()) * 0.8 / m_totalFileCount); } void AssetExporter::notifyLoadError(AssetExporterView::LoadState state) @@ -192,12 +193,22 @@ void AssetExporter::onQmlFileLoaded() { QTC_ASSERT(m_view && m_view->model(), qCDebug(loggerError) << "Null model"; return); qCDebug(loggerInfo) << "Qml file load done" << m_view->model()->fileUrl(); - exportComponent(m_view->rootModelNode()); - QString error; - if (!m_view->saveQmlFile(&error)) { - ExportNotification::addError(tr("Error saving QML file. %1") - .arg(error.isEmpty()? tr("Unknown") : error)); + + QmlDesigner::DesignDocument *designDocument = QmlDesigner::QmlDesignerPlugin::instance() + ->documentManager() + .currentDesignDocument(); + if (designDocument->hasQmlParseErrors()) { + ExportNotification::addError(tr("Cannot export QML. Document \"%1\" have parsing errors.") + .arg(designDocument->displayName())); + } else { + exportComponent(m_view->rootModelNode()); + QString error; + if (!m_view->saveQmlFile(&error)) { + ExportNotification::addError(tr("Error saving QML file. %1") + .arg(error.isEmpty()? tr("Unknown") : error)); + } } + notifyProgress((m_totalFileCount - m_exportFiles.count()) * 0.8 / m_totalFileCount); triggerLoadNextFile(); } From 893d5901a6e800e7d9886af9a56939cd2f34de24 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 1 Sep 2020 16:38:23 +0300 Subject: [PATCH 08/33] QmlPuppet: Fall back to primitive creation if component creation fails This ensures components defined in .qml files get loaded properly. Change-Id: I070132ab5ad58b2531f27f623f218e0ee3565c5b Fixes: QDS-2697 Reviewed-by: Thomas Hartmann --- .../qml2puppet/instances/servernodeinstance.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp index 96f4c30ba31..69c854f3e99 100644 --- a/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp +++ b/share/qtcreator/qml/qmlpuppet/qml2puppet/instances/servernodeinstance.cpp @@ -231,9 +231,12 @@ ServerNodeInstance ServerNodeInstance::create(NodeInstanceServer *nodeInstanceSe } else if (!instanceContainer.componentPath().isEmpty()) { object = Internal::ObjectNodeInstance::createComponent(instanceContainer.componentPath(), nodeInstanceServer->context()); if (object == nullptr) { - const QString errors = getErrorString(nodeInstanceServer->engine(), instanceContainer.componentPath()); - const QString message = QString("Component with path %1 could not be created.\n\n").arg(instanceContainer.componentPath()); - nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, message + errors, instanceContainer.instanceId()); + object = Internal::ObjectNodeInstance::createPrimitive(QString::fromUtf8(instanceContainer.type()), instanceContainer.majorNumber(), instanceContainer.minorNumber(), nodeInstanceServer->context()); + if (object == nullptr) { + const QString errors = getErrorString(nodeInstanceServer->engine(), instanceContainer.componentPath()); + const QString message = QString("Component with path %1 could not be created.\n\n").arg(instanceContainer.componentPath()); + nodeInstanceServer->sendDebugOutput(DebugOutputCommand::ErrorType, message + errors, instanceContainer.instanceId()); + } } } else { object = Internal::ObjectNodeInstance::createPrimitive(QString::fromUtf8(instanceContainer.type()), instanceContainer.majorNumber(), instanceContainer.minorNumber(), nodeInstanceServer->context()); From c46ca844fc877fc3613465222d882dfcbdc98fb5 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 1 Sep 2020 15:02:15 +0200 Subject: [PATCH 09/33] QmlDesigner: Fix for macOS issue Task-number: QDS-2708 Change-Id: If7a2f850b9ada74f590574214f7bd1384e3f67e0 Reviewed-by: Knud Dollereder Reviewed-by: Thomas Hartmann --- .../components/timelineeditor/splineeditor.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/plugins/qmldesigner/components/timelineeditor/splineeditor.cpp b/src/plugins/qmldesigner/components/timelineeditor/splineeditor.cpp index 44ef1f194c4..e6d6be4fb60 100644 --- a/src/plugins/qmldesigner/components/timelineeditor/splineeditor.cpp +++ b/src/plugins/qmldesigner/components/timelineeditor/splineeditor.cpp @@ -207,20 +207,20 @@ void SplineEditor::contextMenuEvent(QContextMenuEvent *e) { m_curve.clearActive(); - QMenu menu; + auto *menu = new QMenu(this); EasingCurve mappedCurve = m_canvas.mapTo(m_curve); int index = mappedCurve.hit(e->pos(), 10); if (index > 0 && !m_curve.isHandle(index)) { - QAction *deleteAction = menu.addAction(tr("Delete Point")); + QAction *deleteAction = menu->addAction(tr("Delete Point")); connect(deleteAction, &QAction::triggered, [this, index]() { m_curve.deletePoint(index); update(); emit easingCurveChanged(m_curve); }); - QAction *smoothAction = menu.addAction(tr("Smooth Point")); + QAction *smoothAction = menu->addAction(tr("Smooth Point")); smoothAction->setCheckable(true); smoothAction->setChecked(m_curve.isSmooth(index)); connect(smoothAction, &QAction::triggered, [this, index]() { @@ -229,7 +229,7 @@ void SplineEditor::contextMenuEvent(QContextMenuEvent *e) emit easingCurveChanged(m_curve); }); - QAction *cornerAction = menu.addAction(tr("Corner Point")); + QAction *cornerAction = menu->addAction(tr("Corner Point")); connect(cornerAction, &QAction::triggered, [this, index]() { m_curve.breakTangent(index); update(); @@ -237,7 +237,7 @@ void SplineEditor::contextMenuEvent(QContextMenuEvent *e) }); } else { - QAction *addAction = menu.addAction(tr("Add Point")); + QAction *addAction = menu->addAction(tr("Add Point")); connect(addAction, &QAction::triggered, [&]() { m_curve.addPoint(m_canvas.mapFrom(e->pos())); m_curve.makeSmooth(m_curve.active()); @@ -246,13 +246,13 @@ void SplineEditor::contextMenuEvent(QContextMenuEvent *e) }); } - QAction *zoomAction = menu.addAction(tr("Reset Zoom")); + QAction *zoomAction = menu->addAction(tr("Reset Zoom")); connect(zoomAction, &QAction::triggered, [&]() { m_canvas.setScale(1.0); update(); }); - menu.exec(e->globalPos()); + menu->exec(e->globalPos()); e->accept(); } From 88e5a6200b6b44375bae5ac8aea1cd60f596f366 Mon Sep 17 00:00:00 2001 From: Mahmoud Badri Date: Tue, 1 Sep 2020 16:00:00 +0300 Subject: [PATCH 10/33] QmlDesigner: Make active3dScene internal (not saveable) Task-number: QDS-2699 Change-Id: I7c8e8245c7f4631a7f3cac121ed9a88e3395f579 Reviewed-by: Miikka Heikkinen Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/components/edit3d/edit3dview.cpp | 2 +- src/plugins/qmldesigner/designercore/model/rewriterview.cpp | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp index 87117f6318a..04b3a09061f 100644 --- a/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp +++ b/src/plugins/qmldesigner/components/edit3d/edit3dview.cpp @@ -112,7 +112,7 @@ void Edit3DView::updateActiveScene3D(const QVariantMap &sceneState) if (sceneState.contains(sceneKey)) { qint32 newActiveScene = sceneState[sceneKey].value(); edit3DWidget()->canvas()->updateActiveScene(newActiveScene); - rootModelNode().setAuxiliaryData("active3dScene", newActiveScene); + rootModelNode().setAuxiliaryData("active3dScene@Internal", newActiveScene); } if (sceneState.contains(selectKey)) diff --git a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp index eb9c6507469..537f94ca4da 100644 --- a/src/plugins/qmldesigner/designercore/model/rewriterview.cpp +++ b/src/plugins/qmldesigner/designercore/model/rewriterview.cpp @@ -547,7 +547,6 @@ QString RewriterView::auxiliaryDataAsQML() const for (const auto &node : allModelNodes()) { QHash data = node.auxiliaryData(); if (!data.isEmpty()) { - hasAuxData = true; if (columnCount > 80) { str += "\n"; columnCount = 0; @@ -566,7 +565,6 @@ QString RewriterView::auxiliaryDataAsQML() const keys.sort(); for (const QString &key : keys) { - if (key.endsWith("@NodeInstance")) continue; @@ -578,7 +576,7 @@ QString RewriterView::auxiliaryDataAsQML() const if (!safeName.exactMatch(key)) continue; - + hasAuxData = true; const QVariant value = data.value(key.toUtf8()); QString strValue = value.toString(); From dcefa9cd4316fd656ff2d6855d700ce7944cb9ee Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Tue, 1 Sep 2020 15:36:24 +0200 Subject: [PATCH 11/33] QmlDesigner: Change CoffeeMachine startup file Task: QDS-2690 Change-Id: I7ab7a596bf940903c3feb3fbff5324fbd64f16bf Reviewed-by: Brook Cronin Reviewed-by: Thomas Hartmann --- src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml b/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml index 3f8ce9bc821..e4dc358b591 100644 --- a/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml +++ b/src/plugins/studiowelcome/qml/welcomepage/ExamplesModel.qml @@ -35,7 +35,7 @@ ListModel { ListElement { projectName: "CoffeeMachine" - qmlFileName: "ApplicationFlowForm.ui.qml" + qmlFileName: "CoffeeMachine.qml" thumbnail: "images/coffeemachinedemo_thumbnail.png" displayName: "Coffee Machine" } From 980ba0d83dbadfc1feec82a1fcf08916cd923df5 Mon Sep 17 00:00:00 2001 From: Johanna Vanhatapio Date: Tue, 1 Sep 2020 11:46:15 +0300 Subject: [PATCH 12/33] Doc: Describe custom shader utilities Using the utilities will be described in another change. Task-number: QDS-2613 Change-Id: I41ca69f84df6e977e41ff30508c8a77d779e1c01 Reviewed-by: Miikka Heikkinen Reviewed-by: Mahmoud Badri --- doc/qtcreator/src/qtcreator-toc.qdoc | 2 + .../src/qtdesignstudio-toc.qdoc | 1 + .../qtdesignstudio-3d-components.qdoc | 12 +- .../qtdesignstudio-3d-custom-shaders.qdoc | 190 ++++++++++++++++++ .../qtdesignstudio-3d-effects.qdoc | 2 +- .../qtdesignstudio-3d-lights.qdoc | 2 +- 6 files changed, 206 insertions(+), 3 deletions(-) create mode 100644 doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 28ece9068ca..269d6c7a122 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -136,7 +136,9 @@ \li \l{Adding Models} \li \l{Using Materials and Shaders} \li \l{Attaching Textures to Materials} + \li \l{Using 3D Materials} \li \l{Applying 3D Effects} + \li \l{Using Custom Shaders} \li \l{Using Lights} \li \l{Using Scene Camera} \li \l{Setting Scene Environment} diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc index 73a0166e40c..1bf80045c79 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc @@ -108,6 +108,7 @@ \li \l{Using Materials and Shaders} \li \l{Attaching Textures to Materials} \li \l{Applying 3D Effects} + \li \l{Using Custom Shaders} \li \l{Using Lights} \li \l{Using Scene Camera} \li \l{Setting Scene Environment} diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc index babe39a29f7..b9b463c52e0 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc @@ -58,11 +58,21 @@ You can use a Texture component to specify an image and how it is mapped to meshes in a 3D scene. Texture components can use image data either from a file or a Qt Quick QML type. + \li \l {Using 3D Materials} + + You can apply a set of predefined 3D materials on your models. + \li \l {Applying 3D Effects} You can use 3D effect components to generate post-processing effects. - \li \l{Using Lights} + + \li \l {Using Custom Shaders} + + You can use 3D shader utilities to construct your own effects and + materials. + + \li \l {Using Lights} You can use several light types as the source of lighting in a scene and set their properties. diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc new file mode 100644 index 00000000000..27c6c5fc1c0 --- /dev/null +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc @@ -0,0 +1,190 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Design Studio. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page studio-3d-custom-shaders.html + \previouspage studio-3d-effects.html + \nextpage studio-3d-lights.html + + \title Using Custom Shaders + + You can use the Qt Quick 3D shader utilities and commands to create your own + effects and materials. + + For more information on using the shaders, see + \l {Creating Custom Effects and Materials}. + + See the following tables for available shader utilities and commands. + + \section1 Available Custom Shader Utilities + \table + \header + \li Custom Shader + \li Description + + \row + \li \l Buffer + \li A buffer to be used for a pass of a Custom Material or an Effect. + + Specify attributes for the buffer by defining the \uicontrol Name + and \uicontrol Format and \uicontrol {Allocation Flags} properties. + + The \uicontrol Filter property specifies the filter operation when a + render pass is reading the buffer that differs in size in comparison + to the current output buffer. + + The \uicontrol {Coordinate Operation} property specifies the texture + coordinate operation for coordinates outside [0, 1] range. + + You can also specify the \uicontrol {Size Multiplier} of the buffer. + Value of 1.0 creates buffer with the same size while 0.5 creates + buffer with width and height halved. + + \row + \li \l {CustomMaterial} {Custom Material} + \li The base component for creating custom materials used to shade + models. + + Specify the attributes of the \uicontrol {Custom Material} by + defining the \uicontrol Transparency, \uicontrol Refraction and + \uicontrol {Always Dirty} properties. The \uicontrol Passes property + contains a list of render passes implemented by the material. + The \uicontrol {Shader Info} specifies the shader info of the + material. For more information, see \l {Creating Custom Effects and + Materials}. + + \row + \li \l Effect + \li A base component for creating post-processing effects. + + The \uicontrol Passes property contains a list of render passes + implemented by the effect. For more information, see + \l {Creating Custom Effects and Materials}. + + \row + \li \l Pass + \li A render pass in a Custom Material or an Effect. + + The \uicontrol Commands property specifies the list of render + commands of the pass. You can further define a render pass by using + the \uicontrol Buffer and \uicontrol Shaders properties. + + \row + \li \l Shader + \li A container component for defining shader code used by Custom + Materials and Effects. + + Define the \uicontrol Shader attributes by specifying the + \uicontrol Source and \uicontrol Stage properties. + + \row + \li \l {ShaderInfo} {Shader Info} + \li Basic information about custom shader code for Custom Materials. + + The \uicontrol Version property specifies the shader code version, + while the \uicontrol Type property defines the shader code type. + The \uicontrol Key property specifies the options used by the shader + using the combination of shader key values, such as diffuse or + specular lighting, refraction, transparency, displacement, + transmissiveness, glossiness, and alpha cutout. + + \row + \li \l {TextureInput} {Texture Input} + \li A texture channel for a Custom Material or an Effect. + + The \uicontrol Texture property specifies the texture to input, while + the \uicontrol Enabled determines whether the texture is enabled. + + \endtable + + + \section1 Available Custom Shader Commands + \table + \header + \li Command + \li Description + + \row + \li \l Blending + \li A pass command that specifies the source blending function. + + Use the \uicontrol Source and \uicontrol Destination to further + define the function. + + \row + \li \l {BufferBlit} {Buffer Blit} + \li A copy operation between two buffers in a pass of a Custom Material + or an Effect. + + Define the source and the destination buffer of the copy-operation + by using the \uicontrol Source and \uicontrol Destination + properties. + + \row + \li \l {BufferInput} {Buffer Input} + \li An input buffer to be used for a pass of a Custom Material or an + Effect. + + The \uicontrol Buffer property specifies the buffer used for the + parameter. The \uicontrol Parameter specifies the name of the input + parameter in the shader. + + \row + \li \l {CullMode} {Cull Mode} + \li A culling mode for a render pass. + + The \uicontrol Mode specifies the culling mode in a pass when the + \uicontrol {State} property of the \uicontrol {Render State} is + set to \uicontrol CullFace. + + \row + \li \l {DepthInput} {Depth Input} + \li An output texture for the depth buffer. + + The \uicontrol Parameter property specifies the name of the texture + the depth buffer will bind to. + + \row + \li \l {RenderState} {Render State} + \li The render state to be enabled or disabled in a pass of a Custom + Material or an Effect. + + The \uicontrol State property specifies the render state to + enable or disable in a pass. + + \row + \li \l {SetUniformValue} {Set Uniform Value} + \li A value to be set during a single pass. + + The \uicontrol Target property specifies the name of the uniform + that will have its value changed during the pass, while the + \uicontrol Value specifies the value that will be set on the target + uniform. + \endtable + + +*/ diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc index 2601d1604ab..6ff97946a5e 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc @@ -28,7 +28,7 @@ /*! \page studio-3d-effects.html \previouspage studio-3d-texture.html - \nextpage studio-3d-lights.html + \nextpage studio-3d-custom-shaders.html \title Applying 3D Effects diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc index ccc158ad6d8..8a1737c0c34 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc @@ -27,7 +27,7 @@ /*! \page studio-3d-lights.html - \previouspage studio-3d-effects.html + \previouspage studio-3d-custom-shaders.html \nextpage studio-3d-camera.html \title Using Lights From 727f25fbd649fa536235a9705e14dda826fd4d72 Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Tue, 1 Sep 2020 13:52:41 +0200 Subject: [PATCH 13/33] AssetExport: Fix incorrect Node lineage Task-number: QDS-2667 Change-Id: I50bd4fbd093734d2df35fce8aed57af28469d358 Reviewed-by: Thomas Hartmann --- .../assetexporterplugin/componentexporter.cpp | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp b/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp index 973cb6e013a..f2f28b86174 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp @@ -30,6 +30,7 @@ #include "model.h" #include "nodeabstractproperty.h" +#include "nodemetainfo.h" #include "rewriterview.h" #include "utils/qtcassert.h" @@ -41,13 +42,16 @@ namespace { Q_LOGGING_CATEGORY(loggerInfo, "qtc.designer.assetExportPlugin.modelExporter", QtInfoMsg) -static void populateLineage(const QmlDesigner::ModelNode &node, QByteArrayList &lineage) +static QByteArrayList populateLineage(const QmlDesigner::ModelNode &node) { + QByteArrayList lineage; if (!node.isValid() || node.type().isEmpty()) - return; - lineage.append(node.type()); - if (node.hasParentProperty()) - populateLineage(node.parentProperty().parentModelNode(), lineage); + return {}; + + for (auto &info : node.metaInfo().superClasses()) + lineage.append(info.typeName()); + + return lineage; } } @@ -86,8 +90,7 @@ void Component::exportComponent() ModelNodeParser *Component::createNodeParser(const ModelNode &node) const { - QByteArrayList lineage; - populateLineage(node, lineage); + QByteArrayList lineage = populateLineage(node); std::unique_ptr reader; for (auto &parserCreator: m_readers) { std::unique_ptr r(parserCreator->instance(lineage, node)); @@ -120,8 +123,8 @@ QJsonObject Component::nodeToJson(const ModelNode &node) } jsonObject = parser->json(*this); } else { - ExportNotification::addError(tr("Error exporting component %1. Parser unavailable.") - .arg(node.id())); + ExportNotification::addError(tr("Error exporting node %1. Cannot parse type %2.") + .arg(node.id()).arg(QString::fromUtf8(node.type()))); } QJsonArray children; From 1b19ae28dba5ab1d862c45ba50620dd05af799bc Mon Sep 17 00:00:00 2001 From: Vikas Pachdha Date: Tue, 1 Sep 2020 14:40:50 +0200 Subject: [PATCH 14/33] AssetExport: Do not export states, timeline and connection nodes Nodes of type QtQuick.Item should only be exported Task-number: QDS-2667 Change-Id: I099b2d1d2a14ded5de46c2852306d5825a89034a Reviewed-by: Thomas Hartmann --- .../assetexporterplugin/componentexporter.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp b/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp index f2f28b86174..59ab72aad1d 100644 --- a/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp +++ b/src/plugins/qmldesigner/assetexporterplugin/componentexporter.cpp @@ -113,6 +113,11 @@ ModelNodeParser *Component::createNodeParser(const ModelNode &node) const QJsonObject Component::nodeToJson(const ModelNode &node) { QJsonObject jsonObject; + + // Don't export States, Connection, Timeline etc nodes. + if (!node.isSubclassOf("QtQuick.Item")) + return {}; + std::unique_ptr parser(createNodeParser(node)); if (parser) { if (parser->uuid().isEmpty()) { @@ -128,8 +133,11 @@ QJsonObject Component::nodeToJson(const ModelNode &node) } QJsonArray children; - for (const ModelNode &childnode : node.directSubModelNodes()) - children.append(nodeToJson(childnode)); + for (const ModelNode &childnode : node.directSubModelNodes()) { + const QJsonObject childJson = nodeToJson(childnode); + if (!childJson.isEmpty()) + children.append(childJson); + } if (!children.isEmpty()) jsonObject.insert(ChildrenTag, children); From ca88afbe315fb6e6a105d19c2cce93f9269595be Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 1 Sep 2020 17:49:19 +0200 Subject: [PATCH 15/33] QmlDesigner: Update complete scene This removes painting artefacts, since the bounding rectangle also gets smaller when updated. Change-Id: Ic184cadbd1dbda1952012b749eadfde0da57ef7f Reviewed-by: Thomas Hartmann --- .../qmldesigner/components/formeditor/formeditorview.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 1a9f1654834..1ba8fcd2be8 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -702,6 +702,8 @@ void FormEditorView::instanceInformationsChanged(const QMultiHashupdate(); + m_currentTool->formEditorItemsChanged(changedItems); } From 84280f0410294c514d189e8c5c71015c89e2e6ee Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Tue, 1 Sep 2020 17:18:44 +0200 Subject: [PATCH 16/33] QmlDesigner: Compact option for label deactivation Change-Id: Ie163f4c021212837b703d2615cbf78b953e056ec Reviewed-by: Thomas Hartmann --- .../QtQuick/ImageSpecifics.qml | 4 ++-- .../imports/HelperWidgets/FlickableSection.qml | 12 ++++++------ .../imports/HelperWidgets/FontSection.qml | 4 ++-- .../imports/HelperWidgets/Label.qml | 10 ++++++++-- .../imports/HelperWidgets/StandardTextSection.qml | 4 ++-- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml index 864dd51ceb4..1db91045c4c 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ImageSpecifics.qml @@ -77,7 +77,7 @@ Column { Label { text: "W" width: 12 - disabledState: !backendValues.sourceSize_width.isAvailable + disabledStateSoft: !backendValues.sourceSize_width.isAvailable } SpinBox { @@ -96,7 +96,7 @@ Column { Label { text: "H" width: 12 - disabledState: !backendValues.sourceSize_height.isAvailable + disabledStateSoft: !backendValues.sourceSize_height.isAvailable } SpinBox { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml index 5501a14cda3..a6e218861b6 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FlickableSection.qml @@ -287,7 +287,7 @@ Section { Label { text: "X" width: root.labelWidth - disabledState: !backendValues.originX.isAvailable + disabledStateSoft: !backendValues.originX.isAvailable } SpinBox { @@ -307,7 +307,7 @@ Section { Label { text: "Y" width: root.labelWidth - disabledState: !backendValues.originY.isAvailable + disabledStateSoft: !backendValues.originY.isAvailable } SpinBox { @@ -336,7 +336,7 @@ Section { Label { text: "Top" width: root.labelWidth - disabledState: !backendValues.topMargin.isAvailable + disabledStateSoft: !backendValues.topMargin.isAvailable } SpinBox { @@ -357,7 +357,7 @@ Section { Label { text: "Bottom" width: root.labelWidth - disabledState: !backendValues.bottomMargin.isAvailable + disabledStateSoft: !backendValues.bottomMargin.isAvailable } SpinBox { @@ -383,7 +383,7 @@ Section { Label { text: "Left" width: root.labelWidth - disabledState: !backendValues.leftMargin.isAvailable + disabledStateSoft: !backendValues.leftMargin.isAvailable } SpinBox { @@ -404,7 +404,7 @@ Section { Label { text: "Right" width: root.labelWidth - disabledState: !backendValues.rightMargin.isAvailable + disabledStateSoft: !backendValues.rightMargin.isAvailable } SpinBox { diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml index 70bb8561233..712958c8486 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/FontSection.qml @@ -237,7 +237,7 @@ Section { text: qsTr("Word") tooltip: qsTr("Sets the word spacing for the font.") width: 42 - disabledState: !getBackendValue("wordSpacing").isAvailable + disabledStateSoft: !getBackendValue("wordSpacing").isAvailable } Item { width: 4 @@ -258,7 +258,7 @@ Section { text: qsTr("Letter") tooltip: qsTr("Sets the letter spacing for the font.") width: 42 - disabledState: !getBackendValue("letterSpacing").isAvailable + disabledStateSoft: !getBackendValue("letterSpacing").isAvailable } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Label.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Label.qml index 6a14e7f68cc..c642280d1a2 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Label.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/Label.qml @@ -37,7 +37,9 @@ Label { property alias toolTip: toolTipArea.tooltip width: Math.max(Math.min(240, parent.width - 280), 50) - color: label.disabledState ? StudioTheme.Values.themeDisabledTextColor : StudioTheme.Values.themeTextColor + color: ((label.disabledState || label.disabledStateSoft) + ? StudioTheme.Values.themeDisabledTextColor + : StudioTheme.Values.themeTextColor) elide: Text.ElideRight @@ -50,7 +52,9 @@ Label { leftPadding: label.disabledState ? 10 : 0 rightPadding: label.disabledState ? 10 : 0 + //Label can be disabled fully (with [] and padding), or in a soft way: only with tooltip and color change. property bool disabledState: false + property bool disabledStateSoft: false Text { text: "[" @@ -68,6 +72,8 @@ Label { ToolTipArea { id: toolTipArea anchors.fill: parent - tooltip: label.disabledState ? qsTr("This property is not available in this configuration.") : label.text + tooltip: ((label.disabledState || label.disabledStateSoft) + ? qsTr("This property is not available in this configuration.") + : label.text) } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml index f7cf3be4abd..b4c07db2652 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/StandardTextSection.qml @@ -203,7 +203,7 @@ Section { text: qsTr("Pixel") tooltip: qsTr("Specifies the minimum font pixel size of scaled text.") width: 42 - disabledState: !backendValues.minimumPixelSize.isAvailable + disabledStateSoft: !backendValues.minimumPixelSize.isAvailable } Item { @@ -224,7 +224,7 @@ Section { text: qsTr("Point") tooltip: qsTr("Specifies the minimum font point size of scaled text.") width: 42 - disabledState: !backendValues.minimumPointSize.isAvailable + disabledStateSoft: !backendValues.minimumPointSize.isAvailable } } From 53a4d357bfefc1ce1cd337be163ec630a9ed3d78 Mon Sep 17 00:00:00 2001 From: Sergey Belyashov Date: Mon, 24 Aug 2020 09:21:14 +0300 Subject: [PATCH 17/33] Update Russian translation Change-Id: Ifdbd70b4f225f8d64d408c9bed695f7e98b81eaf Reviewed-by: Denis Shienkov Reviewed-by: Sergey Belyashov Reviewed-by: Anton Kudryavtsev Reviewed-by: Olesya Gerasimenko Reviewed-by: Oswald Buddenhagen --- share/qtcreator/translations/qtcreator_ru.ts | 4752 ++++++++++++++---- 1 file changed, 3690 insertions(+), 1062 deletions(-) diff --git a/share/qtcreator/translations/qtcreator_ru.ts b/share/qtcreator/translations/qtcreator_ru.ts index dbe962908f1..50a2531f9f7 100644 --- a/share/qtcreator/translations/qtcreator_ru.ts +++ b/share/qtcreator/translations/qtcreator_ru.ts @@ -106,6 +106,14 @@ <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-workspaces.html">What is a Workspace?</a> <a href="qthelp://org.qt-project.qtcreator/doc/creator-project-managing-workspaces.html">Что такое сессия?</a> + + Import + Импортировать + + + Export + Экспортировать + ADS::WorkspaceModel @@ -157,6 +165,17 @@ Введите название сессии: + + ADS::WorkspaceView + + Import Workspace + Импорт сессии + + + Export Workspace + Экспорт сессии + + AccountImage @@ -254,6 +273,10 @@ Rotation Вращение + + State + Состояние + Enabled Включено @@ -278,6 +301,129 @@ Anti-aliasing active Включение антиалиасинга + + Focus + Фокус + + + Holds whether the item has focus within the enclosing FocusScope. + Устанавливает, находится ли элемент в фокусе FocusScope. + + + Active focus on tab + Активный фокус на вкладке + + + Holds whether the item wants to be in the tab focus chain. + Устанавливает, стремится ли элемент быть в цепочке фокуса вкладки. + + + Baseline offset + Смещение базовой линии + + + Specifies the position of the item's baseline in local coordinates. + Определяет положение базовой линии элемента в локальных координатах. + + + + AlignDistributeSection + + Align + Выравнивание + + + Align objects + Выравнивание объектов + + + Align left edges. + Выравнивание по левому краю. + + + Align horizontal centers. + Выравнивание по горизонтальному центру. + + + Align right edges. + Выравнивание по правому краю. + + + Align top edges. + Выравнивание по верхнему краю. + + + Align vertical centers. + Выравнивание по вертикальному центру. + + + Align bottom edges. + Выравнивание по нижнему краю. + + + Distribute objects + Растягивание объектов + + + Distribute left edges. + Растягивание по левому краю. + + + Distribute horizontal centers. + Растягивание по горизонтальному центру. + + + Distribute right edges. + Растягивание по правому краю. + + + Distribute top edges. + Растягивание по верхнему краю. + + + Distribute vertical centers. + Растягивание по вертикальному центру. + + + Distribute bottom edges. + Растягивание по нижнему краю. + + + Distribute spacing + Растягивание интервалов + + + Distribute spacing horizontally. + Растягивать интервалы горизонтально. + + + Distribute spacing vertically. + Растягивать интервалы вертикально. + + + Align to + Выровнять по + + + Key object + Ключевой объект + + + Warning + Предупреждение + + + - The selection contains the root item. + - Выбор содержит корневой элемент. + + + - The selection contains a non visual item. + - Выбор содержит неотображаемый элемент. + + + - An item in the selection uses anchors. + - Выбранный элемент использует привязки. + Analyzer @@ -421,8 +567,8 @@ The minimum API level required by the kit is %1. Отладчик Android (%1, NDK %2) - Android for %1 (Clang %2) - Android для %1 (Clang %2) + Android %1 Clang %2 + Android %1 Clang %2 @@ -465,12 +611,25 @@ The minimum API level required by the kit is %1. Установка на устройство + + Android::AndroidPackageInstallationStepWidget + + <b>Make install:</b> Copy App Files to %1 + <b>Make install:</b> Копирование файлов приложения в %1 + + Android::AndroidRunConfiguration Activity manager start options: Параметры запуска менеджера действий: + + If the "am start" options conflict, the application might not start. +Qt Creator uses: am start -n <package_name>/<Activity_name> [-D]. + Если есть конфликт параметров для «am start», то приложение может не запуститься. +Qt Creator использует: am start -n <имя_пакета>/<действие> [-D]. + Shell commands to run on Android device before application launch. Команды среды, запускаемые на устройстве Android до запуска приложения. @@ -479,10 +638,6 @@ The minimum API level required by the kit is %1. Shell commands to run on Android device after application quits. Команды среды, запускаемые на устройстве Android после завершения приложения. - - If the "am start" options conflict, the application might not start. - Если есть конфликт параметров для «am start», то приложение может не запуститься. - Clean Environment Чистая среда @@ -540,22 +695,6 @@ The files in the Android package source directory are copied to the build direct Create Android Template Files Wizard Мастер создания шаблонов для Android - - Overwrite %1 file - Перезапись файла %1 - - - Overwrite existing "%1"? - Перезаписать существующий файл «%1»? - - - File Creation Error - Ошибка создания файла - - - Could not copy file "%1" to "%2". - Не удалось скопировать файл «%1» в «%2». - Project File not Updated Файл проекта не обновлён @@ -568,8 +707,8 @@ The files in the Android package source directory are copied to the build direct Android::Internal - Deploy to Android device - Установка на устройство Android + Deploy to Android Device + Развёртывание на устройство Android @@ -624,10 +763,6 @@ The files in the Android package source directory are copied to the build direct Android::Internal::AndroidBuildApkWidget - - Android - Android - Create Templates Создать шаблоны @@ -676,6 +811,18 @@ The files in the Android package source directory are copied to the build direct Keystore: Связка ключей: + + Create an Android package for Custom Java code, assets, and Gradle configurations. + Создание пакета Android для пользовательского кода Java, ресурсов и конфигураций Gradle. + + + Android customization: + Настройка Android: + + + Application Signature + Подпись приложения + Keystore files (*.keystore *.jks) Файлы связки ключей (*.keystore *.jks) @@ -716,14 +863,6 @@ The files in the Android package source directory are copied to the build direct Verbose output Расширенный вывод - - Use Ministro service to install Qt - Использовать Ministro для установки Qt - - - Uses the external Ministro application to download and maintain Qt libraries. - Использовать внешнее приложение Ministro для загрузки и обслуживания библиотек Qt. - Build .aab (Android App Bundle) Собирать .aab (Android App Bundle) @@ -786,11 +925,6 @@ The files in the Android package source directory are copied to the build direct Android::Internal::AndroidDeployQtStep - - Deploy to Android device - AndroidDeployQtStep default display name - Развёртывание на устройство Android - No Android arch set by the .pro file. Архитектура Android не прописана в файле .pro. @@ -815,6 +949,31 @@ The files in the Android package source directory are copied to the build direct Cannot find the androiddeploy Json file. Не удалось найти Json файл androiddeploy. + + Uninstall the existing app first + Сначала удаление существующего приложения + + + Reset Default Deployment Devices + Сбросить умолчальные развёртываемые устройства + + + Install an APK File + Установить файл APK + + + Qt Android Installer + Установщик Qt на Android + + + Deploy to Android Device + AndroidDeployQtStep default display name + Развёртывание на устройство Android + + + Android: The main ABI of the deployment device (%1) is not selected! The app execution or debugging might not work properly. Add it from Projects > Build > Build Steps > qmake > ABIs. + Android: не выбран основной ABI развёртываемого устройства (%1). Выполнение или отладка приложения могут работать неправильно. Добавьте его из Проекты > Сборка > Этапы сборки > qmake > ABI. + Uninstall previous package %1. Удаление предыдущего пакета %1. @@ -839,22 +998,6 @@ The files in the Android package source directory are copied to the build direct Install failed Ошибка установки - - Uninstall previous package - Удалять предыдущий пакет - - - Reset Default Devices - Сбросить устройства по умолчанию - - - Install Ministro from APK - Установить Ministro из APK - - - Qt Android Smart Installer - Qt Android Smart Installer - Android package (*.apk) Пакет Android (*.apk) @@ -1051,6 +1194,52 @@ Do you want to uninstall the existing package? Исходник XML + + Android::Internal::AndroidManifestEditorIconContainerWidget + + Master icon + Основной значок + + + Select master icon. + Выбрать основной значок. + + + Low DPI icon + Значок низкого разрешения + + + Select low DPI icon. + Выбрать значок низкого разрешения. + + + Medium DPI icon + Значок среднего разрешения + + + Select medium DPI icon. + Выбрать значок среднего разрешения. + + + High DPI icon + Значок высокого разрешения + + + Select high DPI icon. + Выбрать значок высокого разрешения. + + + + Android::Internal::AndroidManifestEditorIconWidget + + Icon scaled up. + Значок увеличен. + + + Click to select... + Щёлкните для выбора... + + Android::Internal::AndroidManifestEditorWidget @@ -1093,38 +1282,6 @@ Do you want to uninstall the existing package? Style extraction: Извлечение стиля: - - Master icon - Основной значок - - - Select master icon. - Выбрать основной значок. - - - Select low DPI icon. - Выбрать значок низкого разрешения. - - - Low DPI icon - Значок низкого разрешения - - - Select medium DPI icon. - Выбрать значок среднего разрешения. - - - Medium DPI icon - Значок среднего разрешения - - - Select high DPI icon. - Выбрать значок высокого разрешения. - - - High DPI icon - Значок высокого разрешения - The structure of the Android manifest file is corrupted. Expected a top level 'manifest' node. Структура файла манифеста Android повреждена. Ожидается элемент верхнего уровня «manifest». @@ -1133,14 +1290,6 @@ Do you want to uninstall the existing package? The structure of the Android manifest file is corrupted. Expected an 'application' and 'activity' sub node. Структура файла манифеста Android повреждена. Ожидаются дочерние элементы «application» и «activity». - - Icon scaled up - Значок увеличен - - - Click to select - Щёлкните для выбора - Target SDK: Целевой SDK: @@ -1165,10 +1314,6 @@ Do you want to uninstall the existing package? Run: Запуск: - - Application icon: - Значок приложения: - Permissions Разрешения @@ -1189,6 +1334,34 @@ Do you want to uninstall the existing package? Add Добавить + + Advanced + Дополнительно + + + Application icon + Значок приложения + + + Android services + Сервисы Android + + + Splash screen + Экран заставки + + + Service Definition Invalid + Неверное определение сервиса + + + Cannot switch to source when there are invalid services. + Невозможно переключиться на источник при наличии недопустимых служб. + + + Cannot save when there are invalid services. + Невозможно сохранить при наличии недопустимых служб. + API %1: %2 API %1: %2 @@ -1206,33 +1379,14 @@ Do you want to uninstall the existing package? Перейти к ошибке - Choose Master Icon - Выбор основного значка - - - Choose Low DPI Icon - Выбор значка низкого разрешения - - - Choose Medium DPI Icon - Выбор значка среднего разрешения - - - Choose High DPI Icon - Выбор значка высокого разрешения + Services invalid. Manifest cannot be saved. Correct the service definitions before saving. + Недопустимые службы. Невозможно сохранить Manifest. Исправьте определения сервиса перед сохранением. Android Manifest editor Редактор Android Manifest - - Android::Internal::AndroidPackageInstallationStepWidget - - Make install - Make install - - Android::Internal::AndroidPlugin @@ -1296,8 +1450,16 @@ Do you want to uninstall the existing package? Не удалось найти каталог приложения. - Cannot find or copy C++ debug server. - Не удалось найти или скопировать сервер отладки C++. + Cannot find C++ debug server in NDK installation + Не удалось найти сервер отладки C++ в установке NDK + + + The lldb-server binary has not been found. Maybe sdk_definitions.json does not contain 'lldb;x.y' as sdk_essential_package or LLDB was not installed. + Программа lldb-server не найдена. Возможно, sdk_definitions.json не содержит «lldb; x.y», так как sdk_essential_package или LLDB не были установлены. + + + Cannot copy C++ debug server. + Не удалось скопировать сервер отладки C++. Failed to forward QML debugging ports. @@ -1428,10 +1590,6 @@ Do you want to uninstall the existing package? Advanced Options... Дополнительно... - - Native SDK Manager... - Штатный SDK Manager... - Cancel Отмена @@ -1456,6 +1614,14 @@ SDK Manager занят. Android SDK Changes Изменения в Android SDK + + Qt Creator couldn't find the following essential packages: "%1". +Install them manually after the current operation is done. + + Qt Creator не может найти следующие необходимые пакеты: «%1». +Установите их вручную после завершения текущей операции. + + %n Android SDK packages shall be updated. @@ -1470,14 +1636,6 @@ SDK Manager занят. [Удаляемые пакеты:] - - Native SDK Manager Not Available - Штатный SDK Manager недоступен - - - SDK manager UI tool is not available in the installed SDK tools (version %1). Use the command line tool "sdkmanager" for advanced SDK management. - SDK Manager недоступен в установленном SDK (версии %1). Используйте утилиту командной строки «sdkmanager» для расширенного управления SDK. - Review Android SDK package licenses that have not been accepted? Please note that the installation and use of Android SDK packages may fail if respective licenses are not accepted. @@ -1546,10 +1704,6 @@ Cancelling pending operations... Отмена ожидающих операций... - - SDK manager is not available with the current version of SDK tools. Use native SDK manager. - SDK Manager недоступен в текущей версии инструментов SDK. Используйте штатный SDK Manager. - Android::Internal::AndroidSdkModel @@ -1590,6 +1744,86 @@ Cancelling pending operations... Установить + + Android::Internal::AndroidServiceWidget + + Add + Добавить + + + Remove + Удалить + + + + Android::Internal::AndroidServiceWidget::AndroidServiceModel + + The name of the class implementing the service + Имя класса, реализующего сервис + + + Checked if the service is run in an external process + Отмечено, если сервис работает во внешнем процессе + + + The name of the external process. +Prefix with : if the process is private, use a lowercase name if the process is global. + Имя внешнего процесса. +Если имя начинается с двоеточия, то процесс приватный, если написано в нижнем регистре, то процесс глобальный. + + + Checked if the service is in a separate dynamic library + Отмечено, если сервис в отдельной динамической библиотеке + + + The name of the separate dynamic library + Имя отдельной динамической библиотеки + + + The arguments for telling the app to run the service instead of the main activity + Параметры запуска сервиса вместо основной функциональности приложения + + + Service class name + Имя класса сервиса + + + Run in external process + Работа во внешнем процессе + + + Process name + Имя процесса + + + Run in external library + Работа во внешней библиотеке + + + Library name + Имя библиотеки + + + Service arguments + Параметры сервиса + + + The class name must be set + Должно быть задано имя класса + + + The process name must be set for a service run in an external process + Имя процесса должно быть задано для сервиса, работающего во внешнем процессе + + + The library name must be set for a service run in an external library + Имя библиотеки должно быть задано для сервиса, работающего во внешней библиотеке + + + The service arguments must be set for a service not run in an external library + Необходимо задать параметры сервиса, не работающего во внешней библиотеке + + Android::Internal::AndroidSettingsWidget @@ -1600,18 +1834,6 @@ Cancelling pending operations... Select OpenSSL Include Project File Выбор файла проекта подключаемого OpenSSL - - Automatically download Android SDK Tools to selected location. - -If the selected path contains no valid SDK Tools, the SDK Tools package is downloaded from %1, and extracted to the selected path. -After the SDK Tools are properly set up, you are prompted to install any essential packages required for Qt to build for Android. - - Автоматически загружать инструменты Android SDK в выбранное место. - -Если выбранный путь не содержит подходящих инструментов SDK, то пакет с ними будет загружен из %1 и извлечён в указанное место. -После правильной установки инструментов SDK будет предложено установить пакеты, необходимые Qt для сборки под Android. - - OpenSSL Cloning Клонирование OpenSSL @@ -1620,10 +1842,6 @@ After the SDK Tools are properly set up, you are prompted to install any essenti OpenSSL prebuilt libraries repository is already configured. Хранилище собранных библиотек OpenSSL уже настроено. - - The selected download path (%1) for OpenSSL already exists. Remove and overwrite its content? - Выбранный путь для загрузки (%1) OpenSSL уже существует. Удалить или перезаписать его содержимое? - Cloning OpenSSL prebuilt libraries... Клонирование собранных библиотек OpenSSL... @@ -1632,10 +1850,6 @@ After the SDK Tools are properly set up, you are prompted to install any essenti Cancel Отмена - - OpenSSL prebuilt libraries cloning failed. Opening OpenSSL URL for manual download. - Не удалось клонировать собранные библиотеки OpenSSL. Открывается URL для загрузки вручную. - Remove Android Virtual Device Удаление виртуального устройства Android @@ -1644,18 +1858,6 @@ After the SDK Tools are properly set up, you are prompted to install any essenti Remove device "%1"? This cannot be undone. Удалить устройство «%1»? Отменить операцию будет нельзя. - - (SDK Version: %1, NDK Bundle Version: %2) - (Версия SDK: %1; версия пакета NDK: %2) - - - AVD Manager Not Available - Недоступен AVD Manager - - - Select Android SDK folder - Выбор каталога Android SDK - JDK path exists. Путь к JDK существует. @@ -1701,8 +1903,32 @@ After the SDK Tools are properly set up, you are prompted to install any essenti Инструменты платформы установлены. - SDK manager runs (requires exactly Java 1.8). - Управление SDK работает (требуется Java только версии 1.8). + Missing Android SDK Packages + Отсутствуют пакеты в Android SDK + + + The selected download path (%1) for OpenSSL already exists and the directory is not empty. Select a different path or make sure it is an empty directory. + Выбранный путь для загрузки (%1) OpenSSL уже существует, и каталог не пуст. Выберите другой путь или убедитесь, что это пустой каталог. + + + OpenSSL prebuilt libraries cloning failed. + Не удалось скопировать готовые библиотеки OpenSSL. + + + Opening OpenSSL URL for manual download. + Открытие OpenSSL URL для загрузки вручную. + + + Open Download URL + Открыть ссылку загрузки + + + The Git tool might not be installed properly on your system. + Программа git, возможно, установлена некорректно в этой системе. + + + (SDK Version: %1, NDK Version: %2) + (Версия SDK: %1, Версия NDK: %2) All essential packages installed for all installed Qt versions. @@ -1716,18 +1942,6 @@ After the SDK Tools are properly set up, you are prompted to install any essenti Platform SDK installed. SDK платформы установлен. - - Default Android NDK path exists. - Существует умолчальный путь к Android NDK. - - - Default Android NDK directory structure is correct. - Корректна умолчальная структура каталога Android NDK. - - - Default Android NDK installed into a path without spaces. - Android NDK по умолчанию имеет путь установки без пробелов. - OpenSSL path exists. Путь к OpenSSL существует. @@ -1748,10 +1962,6 @@ After the SDK Tools are properly set up, you are prompted to install any essenti OpenSSL settings have errors. В настройках OpenSSL есть ошибки. - - AVD manager UI tool is not available in the installed SDK tools (version %1). Use the command line tool "avdmanager" for advanced AVD management. - Графический инструмент управления AVD недоступен в установленном SDK (версии %1). Используйте инструмент командной строки «avdmanager» для управления AVD. - The selected path already has a valid SDK Tools package. Выбранный путь уже содержит корректный пакет инструментов SDK. @@ -1768,21 +1978,55 @@ After the SDK Tools are properly set up, you are prompted to install any essenti Android settings are OK. Настройки Android в порядке. + + SDK manager runs (SDK Tools versions <= 26.x require exactly Java 1.8). + Управление SDK работает (для SDK Tools версий не выше 26.х требуется Java только версии 1.8). + Android settings have errors. Настройки Android содержат ошибки. + + Select Android SDK Folder + Выбор каталога Android SDK + + + Automatically download Android SDK Tools to selected location. + +If the selected path contains no valid SDK Tools, the SDK Tools package is downloaded +from %1, +and extracted to the selected path. +After the SDK Tools are properly set up, you are prompted to install any essential +packages required for Qt to build for Android. + Автоматически загружать инструменты Android SDK в выбранное место. + +Если выбранный путь не содержит подходящих инструментов SDK, +то пакет с ними будет загружен +из %1 +и извлечён в указанное место. +После правильной настройки инструментов SDK будет предложено +установить пакеты, необходимые Qt для сборки под Android. + + + Automatically download OpenSSL prebuilt libraries. + +These libraries can be shipped with your application if any SSL operations +are performed. Find the checkbox under "Projects > Build > Build Steps > +Build Android APK > Additional Libraries". +If the automatic download fails, Qt Creator proposes to open the download URL +in the system's browser for manual download. + Автоматическая загрузка готовых библиотек OpenSSL. + +Эти библиотеки могут поставляться с вашим приложением, если выполняются какие-либо операции SSL. Установите флажок в разделе «Проекты > Сборка > Этапы сборки > Сборка Android APK > Дополнительные библиотеки». +Если автоматическая загрузка не удалась, Qt Creator предложит открыть URL загрузки в браузере системы для загрузки вручную. + Android SDK installation is missing necessary packages. Do you want to install the missing packages? В установленном Android SDK отсутствует ряд необходимых пакетов. Доустановить их? - - Missing Android SDK packages - В Android SDK недостаёт пакетов - - Android::Internal::AndroidToolChainFactory + Android::Internal::AndroidToolChain Android Clang Android Clang @@ -1817,17 +2061,17 @@ Install an SDK of at least API version %1. API - Device type + Device Type Тип устройства + + SD-card Size + Объём SD-карты + Target Цель - - SD-card size - Размер SD-карты - CPU/ABI Процессор/ABI @@ -1852,6 +2096,79 @@ Install an SDK of at least API version %1. Доступные параметры: + + Android::Internal::SplashIconContainerWidget + + Splash screen + Заставка + + + Select splash screen image + Выбор картинки для заставки + + + Portrait splash screen + Портретная заставка + + + Select portrait splash screen image + Выбор картинки для портретной заставки + + + Landscape splash screen + Альбомная заставка + + + Select landscape splash screen image + Выбор картинки для альбомной заставки + + + Clear all + Очистить всё + + + Sticky splash screen + Залипающая заставка + + + A non-sticky splash screen is hidden automatically when an activity is drawn. +To hide a sticky splash screen, invoke QtAndroid::hideSplashScreen(). + Незалипающая заставка скрывается автоматически при появлении активности. +Для скрытия залипающей заставки используйте QtAndroid::hideSplashScreen(). + + + (480x720) + (480x720) + + + (720x480) + (720x480) + + + High DPI splash screen + Заставка высокого разрешения + + + (320x480) + (320x480) + + + Medium DPI splash screen + Заставка среднего разрешения + + + (200x320) + (200x320) + + + (320x200) + (320x200) + + + Low DPI splash screen + Заставка низкого разрешения + + Android::NoApplicationProFilePage @@ -2071,10 +2388,6 @@ Install an SDK of at least API version %1. Android Settings Настройки Android - - Native AVD Manager... - Штатный AVD Manager... - SDK Manager SDK Manager @@ -2083,10 +2396,6 @@ Install an SDK of at least API version %1. Open JDK download URL in the system's browser. Открыть путь загрузки JDK в системном браузере. - - Automatically download Android SDK Tools to selected location. - Автоматически загружать инструменты Android SDK в выбранный каталог. - Open Android SDK download URL in the system's browser. Открыть URL загрузки Android SDK в системном браузере. @@ -2107,32 +2416,56 @@ Install an SDK of at least API version %1. Remove the selected NDK if it has been added manually. Удалить выбранный NDK, если был добавлен вручную. - - Android OpenSSL settings - Настройки Android OpenSSL - - - OpenSSL .pri location: - Размещение OpenSSL .pri: - Select the path of the prebuilt OpenSSL binaries. Укажите путь к собранным библиотеками OpenSSL. - - Automatically download OpenSSL prebuilt libraries. If the automatic download fails, the download URL will be opened in the system's browser for manual download. - Автоматически загружать собранные библиотеки OpenSSL. Если автоматически загрузить не выйдет, то URL загрузки откроется в системном браузере для ручной загрузки. - Refresh List Обновить список + + Set Up SDK + Настроить SDK + + + Android OpenSSL settings (Optional) + Настройки Android OpenSSL (опционально) + + + OpenSSL binaries location: + Размещение собранного OpenSSL: + + + Download OpenSSL + Загрузить OpenSSL + - AndroidToolManager + AnimatedImageSpecifics - Could not start process "%1 %2" - Невозможно запустить процесс «%1 %2» + Animated Image + Анимированное изображение + + + Speed + Скорость + + + Paused + Приостановлено + + + Holds whether the animated image is paused. + Определяет, приостановлено ли анимированное изображение. + + + Playing + Воспроизводится + + + Holds whether the animated image is playing. + Определяет, воспроизводится ли анимированное изображение. @@ -2181,6 +2514,14 @@ Install an SDK of at least API version %1. Always Run To End Доигрывать всегда + + Easing Curve + Переходная кривая + + + Define custom easing curve + Задание особой переходной кривой + AnimationTargetSection @@ -2422,6 +2763,29 @@ Executable: %2 Тестирование выполнялось без вывода. + + Autotest::Internal::CatchOutputReader + + Executing %1 "%2" + Выполнение %1 «%2» + + + %1 "%2" passed + %1 «%2» проверен + + + Expression passed + Выражение проверено + + + Expression failed: %1 + Выражение не соответствует: %1 + + + Finished executing %1 "%2" + Завершено выполнение %1 «%2» + + Autotest::Internal::GTestOutputReader @@ -3381,6 +3745,10 @@ Warning: this is an experimental feature and might lead to failing to execute th Unable to create a uVision project template. Не удалось создать шаблон проекта uVision. + + Unable to create an uVision project options template. + Не удалось создать шаблон проекта настроек uVision. + BareMetal::Internal::BareMetalDevice @@ -3685,18 +4053,15 @@ Warning: this is an experimental feature and might lead to failing to execute th &Compiler path: Путь к &компилятору: + + Platform codegen flags: + Флаги генерации кода для платформы: + &ABI: &ABI: - - BareMetal::Internal::IarToolChainFactory - - IAREW - IAREW - - BareMetal::Internal::JLinkGdbServerProviderConfigWidget @@ -3757,23 +4122,94 @@ Warning: this is an experimental feature and might lead to failing to execute th - BareMetal::Internal::KeilToolchainConfigWidget + BareMetal::Internal::JLinkUvscAdapterOptionsWidget + + Port: + Порт: + + + Speed: + Скорость: + + + JTAG + JTAG + + + SWD + SWD + + + 50MHz + 50 МГц + + + 33MHz + 33 МГц + + + 25MHz + 25 МГц + + + 20MHz + 20 МГц + + + 10MHz + 10 МГц + + + 5MHz + 5 МГц + + + 3MHz + 3 МГц + + + 2MHz + 2 МГц + + + 1MHz + 1 МГц + + + 500kHz + 500 кГц + + + 200kHz + 200 кГц + + + 100kHz + 100 кГц + + + + BareMetal::Internal::JLinkUvscServerProviderConfigWidget + + Adapter options: + Параметры адаптера: + + + + BareMetal::Internal::KeilToolChainConfigWidget &Compiler path: Путь к &компилятору: + + Platform codegen flags: + Флаги генерации кода для платформы: + &ABI: &ABI: - - BareMetal::Internal::KeilToolchainFactory - - KEIL - KEIL - - BareMetal::Internal::OpenOcdGdbServerProviderConfigWidget @@ -3816,13 +4252,6 @@ Warning: this is an experimental feature and might lead to failing to execute th &ABI: - - BareMetal::Internal::SdccToolChainFactory - - SDCC - SDCC - - BareMetal::Internal::SimulatorUvscServerProviderConfigWidget @@ -3998,12 +4427,20 @@ Warning: this is an experimental feature and might lead to failing to execute th Название - Start - Начало + FLASH Start + FLASH Начало - Size - Размер + FLASH Size + FLASH Объём + + + RAM Start + RAM Начало + + + RAM Size + RAM Объём @@ -4012,13 +4449,21 @@ Warning: this is an experimental feature and might lead to failing to execute th Algorithm path. Путь к алгоритму. + + FLASH: + FLASH: + Start address. Начальный адрес. Size. - Размер. + Объём. + + + RAM: + RAM: @@ -4072,8 +4517,8 @@ Warning: this is an experimental feature and might lead to failing to execute th Поставщик: - Family: - Семейство: + Package: + Пакет: Description: @@ -4084,8 +4529,20 @@ Warning: this is an experimental feature and might lead to failing to execute th Память: - Flash algorithm - Алгоритм прошивки + Flash algorithm: + Алгоритм прошивания: + + + Peripheral description files (*.svd) + Файлы описания устройств (*.svd) + + + Select Peripheral Description File + Выбор файла описания внешнего устройства + + + Peripheral description file: + Файл описания устройства: @@ -4162,6 +4619,10 @@ Warning: this is an experimental feature and might lead to failing to execute th uVision St-Link uVision St-Link + + uVision JLink + uVision JLink + BareMetal::Internal::UvscServerProviderConfigWidget @@ -4746,6 +5207,17 @@ For example, "Revision: 15" will leave the branch at revision 15.Стили&затор + + Beautifier::Internal + + Artistic Style + Artistic Style + + + Uncrustify + Uncrustify + + Beautifier::Internal::AbstractSettings @@ -4787,28 +5259,25 @@ For example, "Revision: 15" will leave the branch at revision 15.Artistic Style Artistic Style - - - Beautifier::Internal::ArtisticStyle::ArtisticStyle - - Artistic Style - Artistic Style - &Artistic Style &Artistic Style - Beautifier::Internal::ArtisticStyle::ArtisticStyleOptionsPage + Beautifier::Internal::ArtisticStyleOptionsPage Configuration - Настройка + Конфигурация Artistic Style command: Команда Artistic Style: + + Restrict to MIME types: + Только для MIME-типов: + Options Параметры @@ -4817,6 +5286,10 @@ For example, "Revision: 15" will leave the branch at revision 15.Use file *.astylerc defined in project files Использовать файл *.astylerc, заданный в проекте + + Use specific config file: + Особый файл конфигурации: + Use file .astylerc or astylerc in HOME HOME is replaced by the user's home directory @@ -4826,14 +5299,6 @@ For example, "Revision: 15" will leave the branch at revision 15.Use customized style: Использовать особый стиль: - - Restrict to MIME types: - Только для MIME-типов: - - - Use specific config file: - Особый файл конфигурации: - Beautifier::Internal::BeautifierPlugin @@ -4885,51 +5350,48 @@ For example, "Revision: 15" will leave the branch at revision 15.Uncrustify Uncrustify - - - Beautifier::Internal::ClangFormat::ClangFormat - - ClangFormat - ClangFormat - &ClangFormat &ClangFormat + + ClangFormat + ClangFormat + - Beautifier::Internal::ClangFormat::ClangFormatOptionsPage - - Configuration - Настройка - + Beautifier::Internal::ClangFormatOptionsPage Options Параметры - - Clang Format command: - Команда Clang Format: - - - Use predefined style: - Использовать стандартный стиль: - Use customized style: Использовать особый стиль: - Restrict to MIME types: - Только для MIME-типов: + Use predefined style: + Использовать стандартный стиль: Fallback style: Резервный стиль: + + Configuration + Конфигурация + + + Clang Format command: + Команда Clang Format: + + + Restrict to MIME types: + Только для MIME-типов: + - Beautifier::Internal::ClangFormat::ClangFormatSettings + Beautifier::Internal::ClangFormatSettings No description available. Описание недоступно. @@ -5008,26 +5470,26 @@ For example, "Revision: 15" will leave the branch at revision 15. - Beautifier::Internal::Uncrustify::Uncrustify - - Uncrustify - Uncrustify - + Beautifier::Internal::Uncrustify &Uncrustify &Uncrustify - Beautifier::Internal::Uncrustify::UncrustifyOptionsPage + Beautifier::Internal::UncrustifyOptionsPage Configuration - Настройка + Конфигурация Uncrustify command: Команда Uncrustify: + + Restrict to MIME types: + Только для MIME-типов: + Options Параметры @@ -5036,6 +5498,10 @@ For example, "Revision: 15" will leave the branch at revision 15.Use file uncrustify.cfg defined in project files Использовать файл uncrustify.cfg заданный в проекте + + Use file specific uncrustify.cfg + Особый uncrustify.cfg для каждого файла + Use file uncrustify.cfg in HOME HOME is replaced by the user's home directory @@ -5053,14 +5519,6 @@ For example, "Revision: 15" will leave the branch at revision 15.Format entire file if no text was selected Форматировать весь файл, если ничего не выбрано - - Restrict to MIME types: - Только для MIME-типов: - - - Use file specific uncrustify.cfg - Особый uncrustify.cfg для каждого файла - BinEditor::Internal::BinEditorDocument @@ -5529,12 +5987,44 @@ For example, "Revision: 15" will leave the branch at revision 15.Нижняя рамка - Horizontal Fill mode - Режим горизонтального заполнения + Horizontal Tile mode + Режим горизонтальной плитки - Vertical Fill mode - Режим вертикального заполнения + Vertical Tile mode + Режим вертикальной плитки + + + Mirror + Отражать + + + Specifies whether the image should be horizontally inverted. + Указывает, должно ли изображение быть отражено по горизонтали. + + + Smooth + Сглаживание + + + Specifies whether the image is smoothly filtered when scaled or transformed. + Указывает, должно ли изображение гладко масштабироваться или преобразовываться. + + + Cache + Кэш + + + Specifies whether the image should be cached. + Указывает, должно ли изображение кэшироваться. + + + Asynchronous + Асинхронно + + + Specifies that images on the local filesystem should be loaded asynchronously in a separate thread. + Указывает, что изображения с локальной файловой системы должны загружаться асинхронно в отдельном потоке. Source size @@ -5756,8 +6246,8 @@ For example, "Revision: 15" will leave the branch at revision 15.Инструментарий не поддерживается выбранным генератором CMake. - The selected CMake binary has no server-mode and the CMake generator does not generate a CodeBlocks file. %1 will not be able to parse CMake projects. - Выбранная программа CMake не имеет серверного режима, а генератор CMake не создаёт файлы CodeBlocks. %1 не имеет возможности разбирать проекты CMake. + The selected CMake binary does not support file-api. %1 will not be able to parse CMake projects. + Выбранная программа CMake не поддерживает file-api. %1 не сможет проанализировать проекты CMake. <Use Default Generator> @@ -5791,8 +6281,8 @@ For example, "Revision: 15" will leave the branch at revision 15.Программа CMake используется для сборки проектов на базе CMake.<br>Эта настройка игнорируется при использовании других систем сборки. - CMake version %1 is unsupported. Please update to version 3.0 or later. - CMake версии %1 не поддерживается. Обновите до версии 3.0 или более поздней. + CMake version %1 is unsupported. Please update to version 3.14 (with file-api) or later. + CMake версии %1 не поддерживается. Обновите до версии 3.14 (с поддержкой file-api) или более поздней. CMake @@ -5821,8 +6311,8 @@ For example, "Revision: 15" will leave the branch at revision 15. CMakeProjectManager::CMakeSettingsPage - Version: %1<br>Supports fileApi: %2<br>Supports server-mode: %3 - Версия: %1<br>Поддерживается fileApi: %2<br>Поддерживается серверный режим: %3 + Version: %1<br>Supports fileApi: %2 + Версия: %1<br>Поддерживается fileApi: %2 yes @@ -6012,66 +6502,15 @@ For example, "Revision: 15" will leave the branch at revision 15.Собрать цель CMake - - CMakeProjectManager::Internal::BuildDirManager - - Failed to create build directory "%1". - Не удалось создать каталог сборки «%1». - - - Failed to create temporary directory "%1". - Не удалось создать временный каталог «%1». - - - Parsing has been canceled. - Разбор был отменён. - - - The kit needs to define a CMake tool to parse this project. - В комплекте должна быть задана программа CMake для разбора этого проекта. - - - CMakeLists.txt in source directory - CMakeLists.txt в каталоге исходников - - - CMakeCache.txt file not found. - Не удалось найти файл CMakeCache.txt. - - - <removed> - <удалён> - - - Key - Ключ - - - %1 Project - Проект %1 - - - Changed value - Изменённое значение - - - The project has been changed outside of %1. - Проект изменился из-вне %1. - - - Discard External Changes - Отменить внешние изменения - - - Adapt %1 Project to Changes - Применить изменения к проекту %1 - - CMakeProjectManager::Internal::CMakeBuildConfiguration - CMake configuration set by the kit was overridden in the project. - Конфигурация CMake, заданная комплектом, изменена в проекте. + Changing Build Directory + Изменение каталога сборки + + + Change the build directory and start with a basic CMake configuration? + Сменить каталог сборки и начать с базовой конфигурации CMake? Minimum Size Release @@ -6084,10 +6523,6 @@ For example, "Revision: 15" will leave the branch at revision 15. CMakeProjectManager::Internal::CMakeBuildSettingsWidget - - Build directory: - Каталог сборки: - Filter Фильтр @@ -6221,6 +6656,10 @@ For example, "Revision: 15" will leave the branch at revision 15. CMakeProjectManager::Internal::CMakeBuildStepConfigWidget + + CMake arguments: + Параметры CMake: + Tool arguments: Параметры утилиты: @@ -6234,10 +6673,6 @@ For example, "Revision: 15" will leave the branch at revision 15.CMakeProjectManager::CMakeBuildStepConfigWidget display name. Сборка - - <b>No build configuration found on this kit.</b> - <b>Для этого комплекта отсутствует конфигурация сборки.</b> - CMakeProjectManager::Internal::CMakeBuildSystem @@ -6245,6 +6680,30 @@ For example, "Revision: 15" will leave the branch at revision 15.Scan "%1" project tree Сканирование дерева проекта «%1» + + The kit needs to define a CMake tool to parse this project. + В комплекте должна быть задана программа CMake для разбора этого проекта. + + + Apply configuration changes? + Применение изменения конфигурации + + + Run CMake with "%1"? + Запустить CMake с параметрами «%1»? + + + Failed to create build directory "%1". + Не удалось создать каталог сборки «%1». + + + Failed to create temporary directory "%1". + Не удалось создать временный каталог «%1». + + + CMakeCache.txt file not found. + Не удалось найти файл CMakeCache.txt. + CMakeProjectManager::Internal::CMakeConfigurationKitAspect @@ -6317,6 +6776,10 @@ For example, "Revision: 15" will leave the branch at revision 15.Rescan Project Пересканирование проекта + + Parse and verify a CMake reply file. + Разобрать и проверить файл ответа CMake. + Build Собрать @@ -6333,6 +6796,22 @@ For example, "Revision: 15" will leave the branch at revision 15.Ctrl+Alt+B Ctrl+Alt+B + + Select a CMake Reply File + Выбор файла ответа CMake + + + The reply file "%1" and referenced data parsed OK and passed validation. + Файл ответа «%1» и данные разобраны и прошли проверку. + + + The reply file "%1" failed to parse or validate with error message:<br><b>"%2"</b> + Не удалось разобрать или проверить файл ответа «%1». Возникла ошибка:<br><b>«%2»</b> + + + Parsing Result + Результат разбора + Build File is not supported for generator "%1" Операция «Собрать файл» не поддерживается генератором «%1» @@ -6456,6 +6935,10 @@ For example, "Revision: 15" will leave the branch at revision 15.CMake executable path is not executable. Путь к программе CMake не исполняемый. + + CMake executable does not provided required IDE integration features. + Не указана программа CMake необходимая для среды разработки. + CMakeProjectManager::Internal::FileApi @@ -6468,6 +6951,20 @@ For example, "Revision: 15" will leave the branch at revision 15.<Другие места> + + CMakeProjectManager::Internal::FileApiReader + + Parsing has been canceled. + Разбор был отменён. + + + + CMakeProjectManager::Internal::InitialCMakeArgumentsAspect + + Initial CMake parameters: + Начальные параметры CMake: + + CMakeProjectManager::Internal::OpenCMakeTargetLocatorFilter @@ -6476,110 +6973,7 @@ For example, "Revision: 15" will leave the branch at revision 15. - CMakeProjectManager::Internal::ServerMode - - Running "%1" in %2. - Выполнение "%1" в %2. - - - Running "%1" failed: Timeout waiting for pipe "%2". - Сбой выполнения «%1»: Истекло время ожидания канала «%2». - - - CMake process "%1" crashed. - Процесс CMake «%1» аварийно завершился. - - - CMake process "%1" quit with exit code %2. - Процесс CMake «%1» завершился с кодом %2. - - - CMake process "%1" quit normally. - Процесс CMake «%1» штатно завершился. - - - Failed to parse JSON from CMake server. - Не удалось разобрать JSON от сервера CMake. - - - JSON data from CMake server was not a JSON object. - Данные JSON от сервера CMake не являются объектом JSON. - - - Unexpected hello received from CMake server. - Получено неожиданное приветствие от сервера CMake. - - - Unexpected type "%1" received while waiting for "hello". - Получен неожиданный тип «%1» при ожидании «hello». - - - Received a reply even though no request is open. - Получен ответ, хотя запрос не отправлялся. - - - Received a reply to a request of type "%1", when a request of type "%2" was sent. - Получен ответ на запрос типа «%1», тогда как запрос был типа «%2». - - - Received a reply with cookie "%1", when "%2" was expected. - Получен ответ с cookie «%1», но ожидалось «%2». - - - An error was reported even though no request is open. - Получено сообщение об ошибке, хотя запрос на отправлялся. - - - Received an error in response to a request of type "%1", when a request of type "%2" was sent. - Получено сообщение об ошибке на запрос типа «%1», тогда как запрос был типа «%2». - - - Received an error with cookie "%1", when "%2" was expected. - Получено сообщение об ошибке с cookie «%1», но ожидалось «%2». - - - Received a message in response to a request of type "%1", when a request of type "%2" was sent. - Получено сообщение на запрос типа «%1», тогда как запрос был типа «%2». - - - Received a message with cookie "%1", when "%2" was expected. - Получено сообщение с cookie «%1», но ожидалось «%2». - - - Received a progress report in response to a request of type "%1", when a request of type "%2" was sent. - Получен отчёт о выполнении на запрос типа «%1», тогда как запрос был типа «%2». - - - Received a progress report with cookie "%1", when "%2" was expected. - Получен отчёт о выполнении с cookie «%1», но ожидалось «%2». - - - Received a signal without a name. - Получен сигнал без имени. - - - Received a signal in reply to a request. - Получен сигнал в ответ на запрос. - - - - CMakeProjectManager::Internal::ServerModeReader - - Parsing of CMake project failed: Connection to CMake server lost. - Не удалось разобрать проект CMake: потеряно соединение с сервером CMake. - - - Configuring "%1" - Настройка «%1» - - - Starting to parse CMake project, using: "%1". - Начинается разбор проекта CMake с использованием «%1». - - - Starting to parse CMake project. - Начинается разбор проекта CMake. - + CMakeProjectManager::Internal::ProjectTreeHelper <Build Directory> <Каталог сборки> @@ -6588,46 +6982,11 @@ For example, "Revision: 15" will leave the branch at revision 15.<Other Locations> <Другие места> - - CMake Project was parsed successfully. - Проект CMake был успешно разобран. - - - CMake Project parsing failed. - Не удалось разобрать проект CMake. - - - %1 in line %2 - %1 в строке %2 - - - %1 - %1 - - - %1 in %2:%3 - %1 в %2:%3 - - - %1 in %2 - %1 в %2 - - - Target Definition - Определение цели - <Headers> <Заголовки> - - CMakeProjectManager::Internal::TeaLeafReader - - The build directory is not for %1 but for %2 - Каталог сборки не для %1, а для %2 - - CMakeTargetNode @@ -6672,6 +7031,131 @@ For example, "Revision: 15" will leave the branch at revision 15.Перспективная/ортогональная камера редактора + + CatchFramework + + Catch Test + Тест Catch + + + + CatchTestFramework + + Catch Test + Тест Catch + + + + CatchTestSettingsPage + + Show success for tests. + Отображать успех при тестировании. + + + Show success + Отображать успех + + + Turns failures into debugger breakpoints. + Превращает сбои в точки останова отладчика. + + + Break on failure while debugging + Прерываться на ошибках + + + Skips all assertions that test for thrown exceptions. + Пропускать все утверждения, проверяющие наличие исключений. + + + Skip throwing assertions + Пропускать исключения + + + Makes whitespace visible. + Делает пробельные символы видимыми. + + + Visualize whitespace + Отображать пробельные символы + + + Warns if a test section does not check any assertion. + Предупреждать, если секция тестирования не проверяет ни одного утверждения. + + + Warn on empty tests + Предупреждать о пустых тестах + + + Aborts after the specified number of failures. + Прерываться после указанного числа сбоев. + + + Abort after + Прерывать после + + + Number of samples to collect while running benchmarks. + Количество выборок при тестировании производительности. + + + Benchmark samples + Выборки производительности + + + Number of resamples used for statistical bootstrapping. + Количество повторных выборок при инициализации статистики. + + + Benchmark resamples + Повторные выборки производительности + + + Number of resamples for bootstrapping. + Количество повторных выборок при инициализации. + + + Confidence interval used for statistical bootstrapping. + Доверительный интервал при инициализации статистики. + + + Benchmark confidence interval + Доверительный интервал + + + Warmup time for each test. + Время прогрева каждого теста. + + + Benchmark warmup time + Время прогрева + + + ms + мс + + + Disables statistical analysis and bootstrapping. + Отключение статистического анализа и инициализации. + + + Disable analysis + Кто так делает?!? Негативные настройки - это дурной тон. + Отключить анализ + + + + CatchTreeItem + + parameterized + параметрический + + + fixture + фиксированный + + CategoryLabel @@ -6945,6 +7429,10 @@ However, using the relaxed and extended rules means also that no highlighting/co %1 bytes %1 байт(ов) + + Value: + Значение: + ClangIndexingProjectSettingsWidget @@ -7047,6 +7535,10 @@ However, using the relaxed and extended rules means also that no highlighting/co Fixit status: Состояние исправления: + + Steps: + Этапы: + ClangTools::ExplainingStep @@ -7099,10 +7591,6 @@ However, using the relaxed and extended rules means also that no highlighting/co Go to next diagnostic. Перейти к следующей проблеме. - - Load Diagnostics from YAML Files exported with "-export-fixes". - Загрузить проблемы из файлов YAML, созданных с помощью «-export-fixes». - Clear Очистить @@ -7135,6 +7623,10 @@ However, using the relaxed and extended rules means also that no highlighting/co Clang-Tidy and Clazy Clang-Tidy и Clazy + + Load diagnostics from YAML files exported with "-export-fixes". + Загрузить проблемы из файлов YAML, созданных с помощью «-export-fixes». + Release Выпуск @@ -7228,8 +7720,8 @@ However, using the relaxed and extended rules means also that no highlighting/co Диагностики импортированы. - %1 diagnostics. %2 fixits, %4 selected. - %1 диагностик. %2 требований на исправление, %4 выбрано. + %1 diagnostics. %2 fixits, %3 selected. + %1 диагностик. %2 требований на исправление, %3 выбрано. No diagnostics. @@ -7348,6 +7840,10 @@ Output: Clang Tools Инструменты Clang + + Analyze File + Проанализировать файл + ClangTools::Internal::ClazyChecks @@ -7409,13 +7905,6 @@ Set a valid executable first. Уровень %1 - - ClangTools::Internal::ClazyPluginRunner - - Clazy - Clazy - - ClangTools::Internal::ClazyStandaloneRunner @@ -8221,6 +8710,13 @@ Set a valid executable first. Для «%1» получен пустой фрагмент. + + CodePaster::DPasteDotComProtocol + + %1: %2 + %1: %2 + + CodePaster::FileShareProtocol @@ -8322,6 +8818,10 @@ Set a valid executable first. Days дней + + Make pasted content public by default + По умолчанию публиковать вставляемую информацию + CodePaster::Internal::ViewDialog @@ -8379,6 +8879,10 @@ p, li { white-space: pre-wrap; } Days дней + + Make public: + Публиковать: + CodePaster::NetworkProtocol @@ -8391,13 +8895,6 @@ p, li { white-space: pre-wrap; } Подключение к %1... - - CodePaster::PasteCodeDotXyzProtocol - - %1: %2 - %1: %2 - - CodePaster::PasteSelectDialog @@ -8525,6 +9022,10 @@ p, li { white-space: pre-wrap; } Defines the start angle for the conical gradient. The value is in degrees (0-360). Определяет начальный угол для конического градиента. Значение в градусах от 0 до 360. + + Color + Цвет + Transparent Прозрачность @@ -8563,6 +9064,13 @@ p, li { white-space: pre-wrap; } Определяет, получает ли выпадающий список фокус при нажатии или нет. + + CommandBuilder + + CMake + CMake + + CompilationDatabaseProjectManager::Internal::CompilationDatabaseProjectManagerPlugin @@ -8581,6 +9089,44 @@ p, li { white-space: pre-wrap; } Разбор проекта «%1» + + Component + + Error exporting component %1. Parser unavailable. + Ошибка экспорта компонента %1. Обработчик недоступен. + + + + ConnectionsSpecifics + + Connections + Соединения + + + Enabled + Включено + + + Sets whether the item accepts change events. + Определяет, принимает ли элемент события изменений. + + + Ignore unknown signals + Игнорировать неизвестные сигналы + + + A connection to a non-existent signal produces runtime errors. If this property is set to true, such errors are ignored + Подключение к несуществующему сигналу вызывает ошибки исполнения. При включении этого свойства такие ошибки будут игнорироваться + + + Target + Цель + + + Sets the object that sends the signal. + Задаёт объект, отправляющий сигнал. + + ContentWindow @@ -8776,6 +9322,29 @@ p, li { white-space: pre-wrap; } %2. + + Core::CodecSelector + + Text Encoding + Кодировка текста + + + The following encodings are likely to fit: + Лучше всего подходят следующие кодировки: + + + Select encoding for "%1".%2 + Выберите кодировку для «%1».%2 + + + Reload with Encoding + Перезагрузить в кодировке + + + Save with Encoding + Сохранить в кодировке + + Core::CommandMappings @@ -8798,6 +9367,14 @@ p, li { white-space: pre-wrap; } Reset all to default. Сбросить всё в исходное состояние. + + Reset + Сбросить + + + Reset to default. + Сброс в исходное состояние. + Import... Импорт... @@ -9123,10 +9700,6 @@ Continue? Core::ICore - - Settings... - Настройки... - (%1) (%1) @@ -9242,21 +9815,6 @@ Continue? Проверить состояние мастера - - Core::InfoBarDisplay - - &Show Details - Показать п&одробности - - - Do Not Show Again - Больше не показывать - - - Close - Закрыть - - Core::Internal @@ -9507,6 +10065,17 @@ To do this, you type this shortcut and a space in the Locator entry field, and t Изменить... + + Core::Internal::DocumentManagerPrivate + + Ctrl+Shift+S + Ctrl+Shift+S + + + Save A&ll + Сохранить &всё + + Core::Internal::DocumentModelPrivate @@ -10433,6 +11002,10 @@ Do you want to kill it? &Edit &Правка + + &View + &Вид + &Tools &Инструменты @@ -10477,10 +11050,6 @@ Do you want to kill it? Save As... Сохранить как... - - Save A&ll - Сохранить &всё - &Print... Пе&чать... @@ -10549,6 +11118,10 @@ Do you want to kill it? Ctrl+- Ctrl+- + + Ctrl+Shift+- + Ctrl+Shift+- + Original Size Исходный размер @@ -10969,14 +11542,6 @@ Do you want to kill it? Core::Internal::PluginDialog - - Show all - Показать все - - - Show all installed plugins, including base plugins and plugins that are not available on this platform. - Отобразит все установленные плагины, включая базовые и недоступные на данной платформе. - Details Подробнее @@ -10989,6 +11554,10 @@ Do you want to kill it? Close Закрыть + + Install Plugin... + Установить модуль... + Restart required. Требуется перезапуск. @@ -11010,6 +11579,117 @@ Do you want to kill it? Ошибки модуля %1 + + Core::Internal::PluginInstallWizard + + Source + Источник + + + Choose source location. This can be a plugin library file or a zip file. + Выберите исходное размещение. Это может быть библиотека модуля или файл zip. + + + File does not exist. + Файл не существует. + + + Check Archive + Проверка архива + + + Cancel + Отмена + + + Checking archive... + Проверка архива... + + + The file is not an archive. + Файл не является архивом. + + + Canceled. + Отменено. + + + There was an error while unarchiving. + Возникла ошибка при разархивации. + + + Archive is OK. + Архив в порядке. + + + Plugin requires an incompatible version of %1 (%2). + Модулю необходима несовместимая версия %1 (%2). + + + Did not find %1 plugin in toplevel directory. + Не удалось найти модуль %1 в каталоге верхнего уровня. + + + Install Location + Путь установки + + + Choose install location. + Выберите путь установки. + + + User plugins + Пользовательские модули + + + The plugin will be available to all compatible %1 installations, but only for the current user. + Модуль будет доступен для всех установленных совместимых %1, но только текущему пользователю. + + + %1 installation + Установленный %1 + + + The plugin will be available only to this %1 installation, but for all users that can access it. + Модуль будет доступен только текущему %1, но для всех пользователей, которым он доступен. + + + Summary + Результат + + + "%1" will be installed into "%2". + «%1» будет установлен в «%2». + + + Overwrite File + Перезапись файла + + + The file "%1" exists. Overwrite? + Перезаписать существующий файл «%1»? + + + Overwrite + Перезаписывать + + + Failed to Write File + Не удалось записать файл + + + Failed to write file "%1". + Не удалось записать файл «%1». + + + Install Plugin + Установка модуля + + + Failed to Copy Plugin Files + Не удалось скопировать файлы модуля + + Core::Internal::ProgressManagerPrivate @@ -11204,19 +11884,7 @@ Do you want to kill it? - Core::Internal::ShortcutSettings - - Keyboard Shortcuts - Горячие клавиши - - - Shortcut - Горячая клавиша - - - Enter key sequence as text - Введите комбинацию в виде текста - + Core::Internal::ShortcutInput Key sequence: Сочетание клавиш: @@ -11230,12 +11898,19 @@ Do you want to kill it? Используйте «Ctrl», «Alt», «Meta» и «Shift» как модификаторы. «Escape», «Backspace», «Delete», «Insert», «Home» и прочие как специальные клавиши. Комбинируйте отдельные клавиши с помощью «+», а комбинации с помощью «,». Например: «Ctrl+Shift+Escape,A» - удерживая «Ctrl» и «Shift» нажать «Escape», отпустить и нажать «A». - Reset - Сбросить + Enter key sequence as text + Введите комбинацию в виде текста + + + + Core::Internal::ShortcutSettings + + Keyboard Shortcuts + Горячие клавиши - Reset to default. - Сбросить в исходное состояние. + Shortcut + Горячая клавиша Keyboard @@ -11249,6 +11924,10 @@ Do you want to kill it? Key sequence will not work in editor. Комбинация не будет работать в редакторе. + + Add + Добавить + Invalid key sequence. Неверная комбинация клавиш. @@ -11560,9 +12239,19 @@ Double-click to edit item. Core::OutputWindow + + Elided %n characters due to Application Output settings + + Выброшен %n символ из-за настроек Вывод приложения + Выброшено %n символа из-за настроек Вывод приложения + Выброшено %n символов из-за настроек Вывод приложения + + - Additional output omitted. You can increase the limit in the "Build & Run" settings. - Дополнительный вывод опущен. Этот предел можно увеличить в настройках сборки и запуска. + [Discarding excessive amount of pending output.] + + [Часть вывода опущена.] + @@ -11785,10 +12474,13 @@ Do you want to check them out now? Контроль версий - Would you like to remove this file from the version control system (%1)? + Would you like to remove + %1 +from the version control system (%2)? Note: This might remove the local file. - Отменить контроль версий (%1) для этого файла? -Замечание: Это может привести к удалению файла. + Отменить контроль версий (%2) для файла + %1? +Это может привести к удалению локального файла. Add to Version Control @@ -11975,14 +12667,6 @@ to version control (%2) Ctrl+Shift+I Ctrl+Shift+I - - Rename Symbol Under Cursor - Переименовать символ под курсором - - - CTRL+SHIFT+R - CTRL+SHIFT+R - Reparse Externally Changed Files Переразобрать файлы изменённые извне @@ -13042,6 +13726,10 @@ Flags: %3 Add #include %1 Добавить #include %1 + + Add forward declaration for %1 + Добавление предъобъявления %1 + Switch with Previous Parameter Переместить параметр вперёд @@ -13435,6 +14123,10 @@ Do you want to display them anyway? CustomToolChain + + Parser for toolchain %1 + Разборщик для инструментария %1 + GCC GCC @@ -14158,6 +14850,10 @@ Do you want to display them anyway? &Executable or symbol file: &Исполняемый или файл символов: + + Override S&ysRoot: + Переопределение S&ysRoot: + Select Remote Core File Выбор внешнего файла дампа @@ -14178,6 +14874,14 @@ Do you want to display them anyway? Select Startup Script Выбор сценария запуска + + Select SysRoot Directory + Выбор каталога SysRoot + + + This option can be used to override the kit's SysRoot setting + Используется для переопределения настройки SysRoot комплекта + Kit: Комплект: @@ -16038,6 +16742,10 @@ Affected are breakpoints %1 Dereference Pointers Automatically Автоматически разыменовывать указатели + + <p>This switches the Locals and Expressions views to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. + <p>Переключает обзоры Переменных и выражений в режим автоматического разыменовывания указателей. Позволяет сократить размер дерева, но при этом теряются данные промежуточного уровня. + Show "std::" Namespace in Types Показывать пространство имён «std::» в типах @@ -16106,10 +16814,6 @@ Affected are breakpoints %1 <p>Checking this will enable tooltips in the stack view during debugging. <p>Включает на время отладки всплывающие подсказки в обзоре стека. - - <p>The maximum length of string entries in the Locals and Expressions pane. Longer than that are cut off and displayed with an ellipsis attached. - <p>Максимальная длина строковых значений в обзоре переменных и выражений. Более длинные строки обрезаются и завершаются многоточием. - <p>The maximum length for strings in separated windows. Longer strings are cut off and displayed with an ellipsis attached. <p>Максимальная длина строки в отдельных окнах. Более длинные строки обрезаются и завершаются многоточием. @@ -16118,10 +16822,6 @@ Affected are breakpoints %1 Synchronize Breakpoints Согласовывать точки останова - - <p>This switches the Locals and Expressions view to automatically dereference pointers. This saves a level in the tree view, but also loses data for the now-missing intermediate level. - <p>Переключает обзор Переменных и выражений в режим автоматического разыменовывания указателей. Позволяет сократить размер дерева, но при этом теряются данные промежуточного уровня. - Adjust Breakpoint Locations Подстраивать размещение точек останова @@ -16182,6 +16882,10 @@ Affected are breakpoints %1 Register For Post-Mortem Debugging Зарегистрировать системным отладчиком + + <p>The maximum length of string entries in the Locals and Expressions views. Longer than that are cut off and displayed with an ellipsis attached. + <p>Максимальная длина строковых значений в обзорах переменных и выражений. Более длинные строки обрезаются и завершаются многоточием. + Reload Full Stack Перезагрузить весь стек @@ -16979,12 +17683,12 @@ In this case, the value should be increased. Использовать помощник отладчика - Debugging Helper Customization - Настройка помощников отладчика + The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals&quot; and &quot;Expressions&quot; views. + Помощники отладчика используются для корректного отображения объектов некоторых типов, вроде QString и std::map в обзорах «Переменные» и «Выражения» режима отладки. - The debugging helpers are used to produce a nice display of objects of certain types like QString or std::map in the &quot;Locals and Expressions&quot; view. - Помощники отладчика используются для корректного отображения объектов некоторых типов, вроде QString и std::map в обзоре «Переменные» режима отладки. + Debugging Helper Customization + Настройка помощников отладчика Python commands entered here will be executed after built-in debugging helpers have been loaded and fully initialized. You can load additional debugging helpers or modify existing ones here. @@ -17586,6 +18290,18 @@ Do you want to retry? &Server start script: Сценарий &запуска сервера: + + Select SysRoot Directory + Выбор каталога SysRoot + + + This option can be used to override the kit's SysRoot setting. + Используется для переопределения настройки SysRoot комплекта. + + + Override S&ysRoot: + Переопределение S&ysRoot: + This option can be used to send the target init commands. Эта настройка используется для отправки цели команд инициализации. @@ -17901,12 +18617,12 @@ You can choose another communication channel here, such as a serial line or cust %1,%2 - Unknown error - Неизвестная ошибка + Unknown error. + Неизвестная ошибка. - Connection is not open - Подключение не открыто + Connection is not open. + Подключение не открыто. @@ -18003,6 +18719,10 @@ You can choose another communication channel here, such as a serial line or cust UVSC: Reading registers failed. UVSC: не удалось прочитать регистры. + + UVSC: Fetching peripheral register failed. + UVSC: не удалось получить регистр устройства. + UVSC: Locals enumeration failed. UVSC: не удалось получить список локальных переменных. @@ -18488,10 +19208,18 @@ You can choose another communication channel here, such as a serial line or cust Use Display Format Based on Type Формат вывода основанный на типе + + Reset All Individual Formats + Сбросить все собственные форматы + Change Display for Type "%1": Сменить отображение для типа «%1»: + + Reset All Formats for Types + Сбросить все форматы для типов + Change Display Format for Selected Values Формат отображения выбранных значений @@ -19145,6 +19873,14 @@ Rebuilding the project might help. Revert Chunk... Откатить фрагмент... + + <b>Error:</b> Could not decode "%1" with "%2"-encoding. + <b>Ошибка:</b> Не удалось преобразовать «%1» в кодировку «%2». + + + Select Encoding + Выбрать кодировку + DiffEditor::Internal::DiffFilesController @@ -19462,26 +20198,22 @@ Rebuilding the project might help. - ExtendedFunctionButton + EnvironmentWidget - Reset - Сбросить + Add ... + Добавить... - Set Binding - Создать привязку + Remove + Удалить - Export Property as Alias - Экспортировать свойства как алиас + Edit... + Изменить... - Insert Keyframe - Вставить ключевой кадр - - - Binding Editor - Редактор привязок + Choose Directory + Выбор каталога @@ -20398,6 +21130,18 @@ will also disable the following plugins: Sets the alignment of contentX and contentY to pixels (true) or subpixels (false). Определяет точность выравнивания contentX и contentY: пиксельную (true) или субпиксельную (false). + + Synchronous drag + Синхронное перетаскивание + + + If set to true, then when the mouse or touchpoint moves far enough to begin dragging +the content, the content will jump, such that the content pixel which was under the +cursor or touchpoint when pressed remains under that point. + Не уверен, что перевод соответствует, так как исходное сообщение для меня не вполне понятное. + Если включить, то перетаскиваемый объект будет сохранять своё положение +относительно курсора. + Content size Размер содержимого @@ -20406,6 +21150,10 @@ will also disable the following plugins: Content Содержимое + + Origin + Происхождение + Margins Внешние отступы @@ -20491,6 +21239,14 @@ will also disable the following plugins: Sets the font's weight. Задание толщины шрифта. + + Style name + Название стиля + + + Sets the font's style. + Задание стиля шрифта. + Style Стиль @@ -20541,6 +21297,14 @@ when they are not required, which will improve performance in most cases. + + Hinting preference + Предпочитаемое сглаживание + + + Sets the preferred hinting on the text. + Задание предпочитаемого метода сглаживания текста. + FontSettings_C_OCCURRENCES_UNUSED @@ -21605,6 +22369,13 @@ Would you like to terminate it? ими + + Git::Internal::GitBaseDiffEditorController + + <None> + <Нет> + + Git::Internal::GitBlameArgumentsWidget @@ -22140,12 +22911,17 @@ Would you like to create the branch "%1" on the remote and set it as u &Soft &Мягко - - - Git::Internal::GitDiffEditorController - <None> - <Нет> + Di&ff Against %1 + Сравн&ить с %1 + + + Diff &Against Saved %1 + Сравнить с со&хранённым %1 + + + &Save for Diff + С&охранить для сравнения @@ -22189,6 +22965,14 @@ Would you like to create the branch "%1" on the remote and set it as u Show textual graph log. Показать граф журнала в ASCII графике. + + Color + Цвет + + + Use colors in log. + Использовать цвета в истории. + Follow Следовать @@ -22240,11 +23024,13 @@ Would you like to create the branch "%1" on the remote and set it as u Git::Internal::GitPluginPrivate &Copy "%1" - &Копировать «%1» + &Копировать «%1» + &Copy "%1" &Describe Change %1 - &Описать изменение %1 + &Описать изменение %1 + &Describe Change %1 Git Settings @@ -22260,11 +23046,13 @@ Would you like to create the branch "%1" on the remote and set it as u Diff Current File - Сравнить текущий файл + Сравнить текущий файл + Diff Current File Diff of "%1" - Изменения «%1» + Изменения «%1» + Diff of "%1" Meta+G,Meta+D @@ -22276,11 +23064,13 @@ Would you like to create the branch "%1" on the remote and set it as u Log Current File - История текущего файла + История текущего файла + Log Current File Log of "%1" - История «%1» + История «%1» + Log of "%1" Meta+G,Meta+L @@ -22292,11 +23082,13 @@ Would you like to create the branch "%1" on the remote and set it as u Blame Current File - Аннотация текущего файла (blame) + Аннотация текущего файла (blame) + Blame Current File Blame for "%1" - Аннотация для «%1» (Blame) + Аннотация для «%1» (Blame) + Blame for "%1" Meta+G,Meta+B @@ -22308,11 +23100,13 @@ Would you like to create the branch "%1" on the remote and set it as u Stage File for Commit - Добавить файл в индекс (stage) + Добавить файл в индекс + Stage File for Commit Stage "%1" for Commit - Добавить «%1» в индекс (stage) + Добавить «%1» в индекс + Stage "%1" for Commit Meta+G,Meta+A @@ -22324,27 +23118,33 @@ Would you like to create the branch "%1" on the remote and set it as u Unstage File from Commit - Убрать файл из индекса (unstage) + Убрать файл из индекса + Unstage File from Commit Unstage "%1" from Commit - Убрать «%1» из индекса (unstage) + Убрать «%1» из индекса + Unstage "%1" from Commit Undo Unstaged Changes - Отменить неиндексированные изменения + Отменить неиндексированные изменения + Undo Unstaged Changes Undo Unstaged Changes for "%1" - Отменить неиндексированные изменения «%1» + Отменить неиндексированные изменения «%1» + Undo Unstaged Changes for "%1" Undo Uncommitted Changes - Отменить незафиксированные изменения + Отменить незафиксированные изменения + Undo Uncommitted Changes Undo Uncommitted Changes for "%1" - Отменить незафиксированные изменения «%1» + Отменить незафиксированные изменения «%1» + Undo Uncommitted Changes for "%1" Meta+G,Meta+U @@ -22360,11 +23160,13 @@ Would you like to create the branch "%1" on the remote and set it as u Diff Current Project - Сравнить текущий проект + Сравнить текущий проект + Diff Current Project Diff Project "%1" - Сравнить проект «%1» + Сравнить проект «%1» + Diff Project "%1" Meta+G,Meta+Shift+D @@ -22376,11 +23178,13 @@ Would you like to create the branch "%1" on the remote and set it as u Log Project - История проекта + История проекта + Log Project Log Project "%1" - История проекта «%1» + История проекта «%1» + Log Project "%1" Meta+G,Meta+K @@ -22392,11 +23196,13 @@ Would you like to create the branch "%1" on the remote and set it as u Clean Project... - Очистить проект... + Очистить проект... + Clean Project... Clean Project "%1"... - Очистить проект «%1»... + Очистить проект «%1»... + Clean Project "%1"... &Local Repository @@ -22404,27 +23210,33 @@ Would you like to create the branch "%1" on the remote and set it as u Diff - Сравнить + Сравнить + Diff Log - История + История + Log Reflog - История ссылок + История ссылок + Reflog Clean... - Очистить... + Очистить... + Clean... Status - Состояние + Состояние + Status Commit... - Фиксировать... + Фиксировать... + Commit... Meta+G,Meta+C @@ -22436,67 +23248,87 @@ Would you like to create the branch "%1" on the remote and set it as u Amend Last Commit... - Исправить последнюю фиксацию (amend)... + Исправить последнюю фиксацию... + Amend Last Commit... Fixup Previous Commit... - Исправить предыдущую фиксацию (fixup)... + Исправить предыдущую фиксацию... + Fixup Previous Commit... Reset... - Сбросить (reset)... + Сбросить... + Reset... Recover Deleted Files - Восстановить удалённые файлы + Восстановить удалённые файлы + Recover Deleted Files Interactive Rebase... - Перебазировать интерактивно... + Перебазировать интерактивно... + Interactive Rebase... Update Submodules - Обновить подмодули + Обновить подмодули + Update Submodules Abort Merge - Прервать объединение + Прервать объединение + Abort Merge Abort Rebase - Прервать перебазирование + Прервать перебазирование + Abort Rebase Abort Cherry Pick - Прервать перенос изменений + Прервать перенос изменений + Abort Cherry Pick Abort Revert - Прервать откат + Прервать откат + Abort Revert Continue Rebase - Продолжение перебазирования + Продолжение перебазирования + Continue Rebase Skip Rebase - Пропустить перебазирование + Пропустить перебазирование + Skip Rebase Continue Cherry Pick - Продолжение перенос изменений + Продолжение перенос изменений + Continue Cherry Pick Continue Revert - Продолжить откат + Продолжить откат + Continue Revert Apply "%1" - Наложить «%1» + Наложить «%1» + Apply "%1" + + + Git Bash + Git Bash Create Repository... - Создать хранилище... + Создать хранилище... + Create Repository... Saves the current state of your work and resets the repository. @@ -22504,47 +23336,57 @@ Would you like to create the branch "%1" on the remote and set it as u Pull - Принять (pull) + Принять + Pull Stash Pop - Восстановить спрятанное (stash pop) + Восстановить спрятанное + Stash Pop Restores changes saved to the stash list using "Stash". - Восстановить изменения сохранённые в список спрятанного командой «Спрятать». + Восстанавливает изменения, сохранённые в список спрятанного командой «Спрятать». Branches... - Ветки... + Ветки... + Branches... &Patch - &Исправление + &Исправление + &Patch Apply from Editor - Наложить из редактора + Наложить из редактора + Apply from Editor Apply from File... - Наложить из файла... + Наложить из файла... + Apply from File... &Stash - Спр&ятанное + Спр&ятанное + &Stash Stashes... - Спрятанное (stashes)... + Спрятанное... + Stashes... Stash - Спрятать + Спрятать + Stash Stash Unstaged Files - Скрыть неиндексированные файлы + Спрятать неиндексированные файлы + Stash Unstaged Files Saves the current state of your unstaged files and resets the repository to its staged state. @@ -22552,7 +23394,8 @@ Would you like to create the branch "%1" on the remote and set it as u Take Snapshot... - Сделать снимок... + Сделать снимок... + Take Snapshot... Saves the current state of your work. @@ -22564,11 +23407,13 @@ Would you like to create the branch "%1" on the remote and set it as u Fetch - Загрузить (fetch) + Загрузить + Fetch Push - Отправить (push) + Отправить + Push &Subversion @@ -22576,39 +23421,48 @@ Would you like to create the branch "%1" on the remote and set it as u DCommit - Дельта фиксация (dcommit) + Дельта фиксация + DCommit Manage Remotes... - Управление хранилищами... + Управление хранилищами... + Manage Remotes... Show... - Показать... + Показать... + Show... Revert... - Откатить... + Откатить... + Revert... Cherry Pick... - Перенести изменения (cherry-pick)... + Перенести изменения... + Cherry Pick... Checkout... - Перейти (checkout)... + Перейти... + Checkout... Archive... - Сжать... + Сжать... + Archive... Rebase... - Перебазировать... + Перебазировать... + Rebase... Merge... - Объединить... + Объединить... + Merge... Git &Tools @@ -22620,35 +23474,43 @@ Would you like to create the branch "%1" on the remote and set it as u Gitk Current File - Открыть текущий файл в Gitk + Открыть текущий файл в Gitk + Gitk Current File Gitk of "%1" - Открыть «%1» в Gitk + Открыть «%1» в Gitk + Gitk of "%1" Gitk for folder of Current File - Открыть в Gitk каталог текущего файла + Открыть в Gitk каталог текущего файла + Gitk for folder of Current File Gitk for folder of "%1" - Открыть в Gitk каталог «%1» + Открыть в Gitk каталог «%1» + Gitk for folder of "%1" Git Gui - Интерфейс Git + Интерфейс Git + Git Gui Repository Browser - Обозреватель хранилища + Обозреватель хранилища + Repository Browser Merge Tool - Программа объединения + Программа объединения + Merge Tool Actions on Commits... - Действия при фиксации... + Действия при фиксации... + Actions on Commits... Undo Changes to %1 @@ -22668,7 +23530,7 @@ Would you like to create the branch "%1" on the remote and set it as u Amend %1 - Исправить %1 + Исправление %1 Git Fixup Commit @@ -23364,6 +24226,14 @@ Leave empty to search through the file system. Layout Direction Направление компоновки + + Horizontal item alignment + Горизонтальное выравнивание элемента + + + Vertical item alignment + Вертикальное выравнивание элемента + Spacing Интервал @@ -23900,6 +24770,10 @@ Add, modify, and remove document filters, which determine the documentation set Reload Перезагрузить + + Unfiltered + Вся + Meta+Shift+C Meta+Shift+C @@ -24329,6 +25203,10 @@ Add, modify, and remove document filters, which determine the documentation set IAREW %1 (%2, %3) IAREW %1 (%2, %3) + + IAREW + IAREW + ImageSpecifics @@ -24348,6 +25226,62 @@ Add, modify, and remove document filters, which determine the documentation set Source size Размер источника + + Horizontal alignment + Горизонтальное выравнивание + + + Vertical alignment + Вертикальное выравнивание + + + Asynchronous + Асинхронно + + + Specifies that images on the local filesystem should be loaded asynchronously in a separate thread. + Указывает, что изображения с локальной файловой системы должны загружаться асинхронно в отдельном потоке. + + + Auto transform + Автотрансформация + + + Specifies whether the image should automatically apply image transformation metadata such as EXIF orientation. + Указывает, должно ли изображение автоматически применять метаданные преобразования изображения, такие как ориентация EXIF. + + + Cache + Кэш + + + Specifies whether the image should be cached. + Указывает, должно ли изображение кэшироваться. + + + Mipmap + Mipmap + + + Specifies whether the image uses mipmap filtering when scaled or transformed. + Указывает, использует ли изображение мипмап-фильтрацию при масштабировании или преобразовании. + + + Mirror + Отражать + + + Specifies whether the image should be horizontally inverted. + Указывает, должно ли изображение быть отражено по горизонтали. + + + Smooth + Сглаживание + + + Specifies whether the image is smoothly filtered when scaled or transformed. + Указывает, должно ли изображение гладко масштабироваться или преобразовываться. + ImageViewer @@ -24583,6 +25517,274 @@ Would you like to overwrite them? <Добавить импорт> + + IncrediBuild::Internal::BuildConsoleBuildStep + + Miscellaneous + Разное + + + Specifies the newest operating system installed on a helper machine to be allowed to participate as helper in the build. + Новейшая разрешённая операционная система вспомогательной машины, работающей помощником сборки. + + + Newest allowed helper machine OS: + Новейшая ОС на помощнике сборки: + + + IncrediBuild Distribution control + Распределение IncrediBuild + + + Specifies the oldest operating system installed on a helper machine to be allowed to participate as helper in the build. + Старейшая разрешённая операционная система вспомогательной машины, работающей помощником сборки. + + + Oldest allowed helper machine OS: + Старейшая ОС на помощнике сборки: + + + Specifies a custom header line which will be displayed in the beginning of the build output text. This title will also be used for the Build History and Build Monitor displays. + Особая строка заголовка, отображаемая в начале вывода сборки. Этот же заголовок будет использоваться в истории сборки и мониторе сборки. + + + Build Title: + Заголовок сборки: + + + Target and configuration + Цель и конфигурация + + + Writes build output to a file + Запись вывода сборки в файл + + + Output Log file: + Файл журнала сборки: + + + Writes a copy of the build progress (.ib_mon) file to the specified location. - If only a folder name is given, IncrediBuild generates a GUID for the file name. - A message containing the location of the saved .ib_mon file is added to the end of the build output + Записывает копию файла прогресса сборки (.ib_mon) в указанное место. Если указано только имя каталога, IncrediBuild создаст GUID для имени файла. Сообщение, содержащее местоположение сохраненного файла .ib_mon, добавляется в конец вывода сборки. + + + Save IncrediBuild monitor file: + Файл прогресса IncrediBuild: + + + Make command: + Команда Make: + + + Shows the Agent used to build each file + Отображение агента, используемого для создания каждого файла. + + + Show Agents in output + Отображать агентов в выводе + + + Determines the maximum number of CPU cores that can be used in a build, regardless of the number of available Agents. It takes into account both local and remote cores, even if the Avoid Task Execution on Local Machine option is selected. + Определяет максимальное количество ядер процессора, которое можно использовать в сборке, независимо от количества доступных агентов. Он учитывает как локальные, так и удаленные ядра, даже если выбран параметр «Избегать выполнения задач на локальном компьютере». + + + Maximum CPUs to utilize in the build: + Максимальное количество ЦП для сборки: + + + Make arguments: + Параметры Make: + + + When specified, the execution will stop as soon as an error is encountered. This is the default behavior in 'Visual Studio' builds, but not the default for 'Make and Build tools' or 'Dev Tools' builds + Включение остановки выполнения при возникновении ошибки. Это поведение по умолчанию в сборках «Visual Studio», но не по умолчанию для сборок «Make and Build tools» или «Dev Tools» + + + Stop On Errors + Останавливаться при ошибках + + + Output and Logging + Вывод и журналирование + + + The Profile XML file is used to define how Automatic Interception Interface should handle the various processes involved in a distributed job. It is not necessary for 'Visual Studio' or 'Make and Build tools' builds, but can be used to provide configuration options if those builds use additional processes that are not included in those packages. it is required to configure distributable processes in 'Dev Tools' builds. + XML-файл профиля используется для определения того, как интерфейс автоматического перехвата должен обрабатывать различные процессы, участвующие в распределённом задании. Это необязательно для сборок «Visual Studio» или «Make and Build tools», но может использоваться для настройки не включенных в эти пакеты дополнительных процессов. Необходимо настроить распределённые процессы в сборках «Dev Tools». + + + Profile.xml: + Profile.xml: + + + Overrides the Agent Settings dialog Avoid task execution on local machine when possible option. This allows to free more resources on the initiator machine and could be beneficial to distribution in scenarios where the initiating machine is bottlenecking the build with High CPU usage + Переопределяет настройки диалогового окна «Настройки агента». По возможности исключает выполнение задач на локальном компьютере, что позволяет сохранить больше ресурсов на компьютере инициатора и может быть полезно в случаях, когда инициирующая машина является узким местом высоконагруженной сборки. + + + Avoid Local + Не собирать локально + + + Does not write anything to the standard output + Не выводить ничего в стандартный вывод. + + + Suppress STDOUT + Подавлять STDOUT + + + Opens an IncrediBuild Build Monitor that graphically displays the build’s progress once the build starts. + Открывает монитор сборки IncrediBuild, графически отображающий ход сборки после её начала. + + + Open Monitor + Открывать монитор + + + Select an helper to establish the build command. + Помощник для запуска команды сборки. + + + Command Helper: + Помощник запуска: + + + Add additional buildconsole arguments manually. The value of this field will be concatenated to the final buildconsole command line + Дополнительные параметры buildconsole. Значение поля будет добавлено к итоговой командной строке buildconsole. + + + Additional Arguments: + Дополнительные параметры: + + + <html><head/><body><p><span style=" font-style:italic; color:#ff0000;">Please enter the appropriate arguments to your build command.</span></p></body></html> + <html><head/><body><p><span style=" font-style:italic; color:#ff0000;">Введите параметры подходящие команде сборки.</span></p></body></html> + + + Sets or overrides environment variables for the context of the build + Задаёт или изменяет переменные среды контекста сборки. + + + Set an Environment Variable: + Задавать переменную среды: + + + <html><head/><body><p>Setting this option to true, forces IncrediBuild to not override the -j command line switch. </p><p>The default IncrediBuild behavior is to set a high value to the -j command line switch which controls the number of processes that the build tools executed by QT will execute in parallel (the default IncrediBuild behavior will set this value to 200).</p></body></html> + <html><head/><body><p>При включении IncrediBuild не переопределяет параметр командной строки -j.</p><p>По умолчанию Incredibuild устанавливает большое значение (200) для ключа -j, задающего число параллельных процессов сборки, запускаемых Qt</p></body></html> + + + Keep Original Jobs Num + Исходное число задач + + + Overrides the internal Incredibuild logging level for this build. Does not affect output or any user accessible logging. Used mainly to troubleshoot issues with the help of IncrediBuild support + Меняет для этой сборки уровень ведения внутреннего журнала Incredibuild. Не влияет на вывод или любые доступные пользователю журналы. В основном используется для устранения проблем через службу поддержки IncrediBuild. + + + Internal IncrediBuild logging level: + Уровень внутренного журналирования: + + + Shows the Start and Finish time for each file built + Отображение времени начала и завершения сборки каждого файла + + + Show Time in output + Отображать время в выводе + + + Shows, for each file built, the command-line used by IncrediBuild to build the file + Отображение каждой команды, используемой IncrediBuild для сборки файла. + + + Show Commands in output + Отображать команды в выводе + + + Suppresses the 'IncrediBuild' header in the build output + Подавление заголовка «IncrediBuild» в выводе сборки + + + Hide IncrediBuild Header in output + Скрывать заголовок IncrediBuild + + + <html><head/><body><p><span style=" font-style:italic; color:#ff0000;">Please make sure the build command's multi-job parameter value is large enough (such as -J200 for the JOM or Make build tools)</span></p></body></html> + <html><head/><body><p><span style=" font-style:italic; color:#ff0000;">Убедитесь, что значение параметра multi-job команды сборки достаточно велико (например, -J200 для сборщиков JOM или Make)</span></p></body></html> + + + + IncrediBuild::Internal::BuildConsoleStepConfigWidget + + IncrediBuild for Windows + IncrediBuild для Windows + + + + IncrediBuild::Internal::IBConsoleBuildStep + + Enter the appropriate arguments to your build command + Введите параметры соответствующие команде сборки + + + Setting this option to true, forces IncrediBuild to not override the -j command line switch. The default IncrediBuild behavior is to set a high value to the -j command line switch which controls the number of processes that the build tools executed by QT will execute in parallel (the default IncrediBuild behavior will set this value to 200). + При включении IncrediBuild не переопределяет параметр командной строки -j. По умолчанию Incredibuild устанавливает большое значение (200) для ключа -j, задающего число параллельных процессов сборки, запускаемых Qt. + + + Keep Original Jobs Num + Исходное число задач + + + Target and configuration + Цель и конфигурация + + + Make command: + Команда Make: + + + Force remote + Принудительно внешняя + + + IncrediBuild Distribution control + Распределение IncrediBuild + + + Specify nice value. Nice Value should be numeric and between -20 and 19 + Задание значения nice. Оно должно быть целым числом от -20 до 19. + + + Nice value: + Значение nice: + + + Make arguments: + Параметры make: + + + Select an helper to establish the build command. + Помощник для запуска команды сборки. + + + Command Helper: + Помощник запуска: + + + Alternate tasks preference + Изменять настройки задач + + + Make sure the build command's multi-job parameter value is large enough (such as -J200 for the JOM or Make build tools). + Убедитесь, что значение многозадачности команды сборки достаточно велико (например, -J200 для JOM или Make). + + + + IncrediBuild::Internal::IBConsoleStepConfigWidget + + IncrediBuild for Linux + IncrediBuild для Linux + + InvalidIdException @@ -24794,6 +25996,22 @@ Ids must begin with a lowercase letter. iOS Device Устройство iOS + + Device name: + Имя устройства: + + + Identifier: + Идентификатор: + + + OS Version: + Версия ОС: + + + CPU Architecture: + Архитектура ЦПУ: + iOS iOS @@ -25260,7 +26478,7 @@ Error: %5 Toggles whether this item is exported as an alias property of the root item. - Переключает режим экспорта элемента, как псевдонима свойства корневого элемента. + Переключает экспорт этого элемента, как свойства alias корневого элемента. Custom id @@ -25294,102 +26512,6 @@ Error: %5 Layout Компоновка - - Align - Выравнивание - - - Align objects - Выравнивание объектов - - - Align left edges. - Выравнивание по левому краю. - - - Align horizontal centers. - Выравнивание по горизонтальному центру. - - - Align right edges. - Выравнивание по правому краю. - - - Align top edges. - Выравнивание по верхнему краю. - - - Align vertical centers. - Выравнивание по вертикальному центру. - - - Align bottom edges. - Выравнивание по нижнему краю. - - - Distribute left edges. - Растягивание по левому краю. - - - Distribute horizontal centers. - Растягивание по горизонтальному центру. - - - Distribute right edges. - Растягивание по правому краю. - - - Distribute top edges. - Растягивание по верхнему краю. - - - Distribute vertical centers. - Растягивание по вертикальному центру. - - - Distribute bottom edges. - Растягивание по нижнему краю. - - - Distribute spacing horizontally. - Растягивать интервалы горизонтально. - - - Distribute spacing vertically. - Растягивать интервалы вертикально. - - - Distribute objects - Растягивание объектов - - - Distribute spacing - Растягивание интервалов - - - Align to - Выровнять по - - - Key object - Ключевой объект - - - Warning - Предупреждение - - - - The selection contains the root item. - - Выбор содержит корневой элемент. - - - - The selection contains a non visual item. - - Выбор содержит неотображаемый элемент. - - - - An item in the selection uses anchors. - - Выбранный элемент использует привязки. - Advanced Дополнительно @@ -25446,11 +26568,15 @@ Error: %5 - KeilToolchain + KeilToolChain KEIL %1 (%2, %3) KEIL %1 (%2, %3) + + KEIL + KEIL + Label @@ -25546,6 +26672,18 @@ Error: %5 Capabilities: Возможности: + + Initialization options: + Параметры инициализации: + + + Failed to parse JSON at %1: %2 + Не удалось разобрать JSON (смещение %1): %2 + + + Language server-specific JSON to pass via "initializationOptions" field of "initialize" request. + Специфичный для языкового сервера JSON, передаваемый в поле «initializationOptions» запроса «initialize». + LanguageClient::Client @@ -25584,10 +26722,6 @@ Error: %5 Unexpectedly finished. Неожиданное завершение. - - Find References with %1 for: - Найти ссылки с %1 для: - LanguageClient::ResponseError @@ -26352,6 +27486,13 @@ Error: %5 + + MakeCommandBuilder + + Make + Make + + MarginSection @@ -26456,25 +27597,17 @@ Error: %5 Arm GDB в %1 - Qt for MCUs SDK - SDK Qt для микроконтроллеров + Qt for MCUs %1+ SDK + SDK Qt для микроконтроллеров %1+ GNU Arm Embedded Toolchain GNU Arm Embedded Toolchain - - STM32Cube SDK - STM32Cube SDK - STM32CubeProgrammer STM32CubeProgrammer - - NXP i.MXRT SDK - NXP i.MXRT SDK - McuSupport::Internal::McuSupportDevice @@ -26497,6 +27630,22 @@ Error: %5 Create a Kit Создание комплекта + + Create Kit + Создать комплект + + + Remove Kit + Удалить комплект + + + A kit for the selected target exists. + Уже существует комплект для выбранной цели. + + + A kit for the selected target can be created. + Можно создать комплект для выбранной цели. + MCU Микроконтроллер @@ -26888,6 +28037,336 @@ Error: %5 Например: «https://[имя[:пароль]@]адрес[:порт]/[путь]». + + MesonBuildStepConfigWidget + + Form + + + + Tool arguments: + Параметры утилиты: + + + Targets: + Цели: + + + + MesonProjectManager::Internal::BuidOptionsModel + + Key + Ключ + + + Value + Значение + + + + MesonProjectManager::Internal::GeneralSettingsPage + + General + Основное + + + + MesonProjectManager::Internal::GeneralSettingsWidget + + Form + + + + Automatically run Meson when needed. + Запускать Meson по необходимости. + + + Autorun Meson + Автозапуск Meson + + + Enables verbose mode by default when invoking Ninja. + Включение подробного режима при запуске Ninja. + + + Ninja verbose mode + Ninja в подробном режиме + + + + MesonProjectManager::Internal::MesonActionsManager + + Configure + Configure + + + Build + Сборка + + + Build "%1" + Сборка «%1» + + + + MesonProjectManager::Internal::MesonBuildSettingsWidget + + Meson + Meson + + + Form + + + + Apply Configuration Changes + Применить изменения + + + Wipes build directory and reconfigures using previous command line options. +Useful if build directory is corrupted or when rebuilding with a newer version of Meson. + Очистка каталога сборки и перенастройка с использованием предыдущих параметров командной строки. +Полезно, если каталог сборки повреждён или после обновления Meson. + + + Wipe Project + Очистить проект + + + Filter + Фильтр + + + + MesonProjectManager::Internal::MesonBuildStepConfigWidget + + Build + MesonProjectManager::MesonBuildStepConfigWidget display name. + Сборка + + + + MesonProjectManager::Internal::MesonProcess + + Configuring "%1". + Настройка «%1». + + + The process failed to start. + Не удалось запустить процесс. + + + Either the invoked program "%1" is missing, or you may have insufficient permissions to invoke the program. + Или отсутствует запущенная программа «%1», или недостаточно прав для её запуска. + + + The process was ended forcefully. + Процесс был завершён принудительно. + + + Process timed out. + Вышло время ожидания процесса. + + + An error occurred when attempting to write to the process. For example, the process may not be running, or it may have closed its input channel. + Возникла ошибка при попытке отправить данные процессу. Возможно, процесс не запущен или он закрыл входной канал. + + + An error occurred when attempting to read from the process. For example, the process may not be running. + Ошибка при получении данных от процесса. Возможно, процесс уже перестал работать. + + + An unknown error in the process occurred. + У процесса возникла неизвестная ошибка. + + + Running %1 in %2. + Работа %1 на %2. + + + Executable does not exist: %1 + Программа отсутствует: %1 + + + Command is not executable: %1 + Команда не запускается: %1 + + + + MesonProjectManager::Internal::MesonProject + + No Meson tool set. + Программа Meson не указана. + + + No Ninja tool set. + Программа Ninja не указана. + + + No compilers set in kit. + У комплекта не заданы компиляторы. + + + + MesonProjectManager::Internal::MesonToolKitAspect + + Meson Tool + Утилита Meson + + + The Meson tool to use when building a project with Meson.<br>This setting is ignored when using other build systems. + Meson используется при сборке проекта с помощью Meson. <br>Игнорируется при использовании других систем сборки. + + + Cannot validate this meson executable. + Невозможно проверить эту программу Meson. + + + Meson + Meson + + + Unconfigured + Не настроено + + + + MesonProjectManager::Internal::NinjaBuildStep + + Meson Build + Сборка Meson + + + Meson + Meson + + + + MesonProjectManager::Internal::NinjaToolKitAspect + + Ninja Tool + Утилита Ninja + + + The Ninja tool to use when building a project with Meson.<br>This setting is ignored when using other build systems. + Ninja используется при сборке проекта с помощью Meson. <br>Игнорируется при использовании других систем сборки. + + + Cannot validate this Ninja executable. + Невозможно проверить эту программу Ninja. + + + Ninja + Ninja + + + Unconfigured + Не настроено + + + + MesonProjectManager::Internal::ToolItemSettings + + Form + + + + Name: + Имя: + + + Path: + Путь: + + + + MesonProjectManager::Internal::ToolTreeItem + + Meson executable path does not exist. + Не найден путь к программе Meson. + + + Meson executable path is not a file. + Путь к программе Meson не является файлом. + + + Meson executable path is not executable. + Путь к программе Meson не исполняемый. + + + + MesonProjectManager::Internal::ToolsSettingsPage + + Name + Имя + + + Location + Размещение + + + Auto-detected + Обнаруженная + + + Manual + Особая + + + New Meson or Ninja tool + Новый инструмент Meson или Ninja + + + Tools + Инструменты + + + Version: %1 + Версия: %1 + + + Clone of %1 + Копия %1 + + + Cannot get tool version. + Не удалось получить версию инструмента. + + + + MesonProjectManager::Internal::ToolsSettingsWidget + + Form + + + + Add + Добавить + + + Clone + Скопировать + + + Remove + Удалить + + + Set as the default Meson executable to use when creating a new kit or when no value is set. + Задание утилиты Meson по умолчанию, используемой при создании новых комплектов или если явно не указано. + + + Make Default + Сделать по умолчанию + + + + MesonProjectManager::MesonToolManager + + Meson + Meson + + MimeTypeDialog @@ -27192,9 +28671,103 @@ Error: %5 Включает/выключает приём элементом событий мыши. - Hover Enabled + Hover enabled Наведение включено + + Accepted buttons + Принимаемые кнопки + + + This property holds the mouse buttons that the mouse area reacts to. + Свойство задаёт список кнопок, на которые реагирует область. + + + Press and hold interval + Интервал нажатие/удерживание + + + This property overrides the elapsed time in milliseconds before pressAndHold is emitted. + Свойство переопределяет истекшее время в миллисекундах до того, как будет выдан pressAndHold. + + + Scroll gesture enabled + Жест прокрутки включён + + + This property controls whether this MouseArea responds to scroll gestures from non-mouse devices. + Свойство определяет, реагирует ли эта область на жесты прокрутки с не оборудованных мышью устройств. + + + Cursor shape + Форма курсора + + + This property holds the cursor shape for this mouse area. + Свойство определяет форму курсора мыши в этой области. + + + Prevent stealing + Предотвращать перехват + + + This property controls whether the mouse events may be stolen from this MouseArea. + Свойство запрещает перехват событий мыши из этой области. + + + Propagate composed events + Передавать составные события + + + This property controls whether composed mouse events will automatically propagate to other MouseAreas. + Свойство разрешает передачу составных событий мыши в другие области MouseArea. + + + Drag + Перетаскивание + + + Target + Цель + + + Sets the id of the item to drag. + Задаёт идентификатор перетаскиваемого элемента. + + + Axis + Ось + + + Specifies whether dragging can be done horizontally, vertically, or both. + Определяет, возможно ли перетаскивание в горизонтальном, вертикальном или в обоих направлениях. + + + Filter children + Фильтровать потомков + + + Specifies whether a drag overrides descendant MouseAreas. + Определяет, будет ли перетаскивание переопределять потомственные MouseArea. + + + Threshold + Порог + + + Determines the threshold in pixels of when the drag operation should start. + Задаёт область в пикселях, в пределах которой начинается перетаскивание. + + + Smoothed + Плавность + + + If set to true, the target will be moved only after the drag operation has started. +If set to false, the target will be moved straight to the current mouse position. + Если установлено значение true, цель будет перемещаться только после начала операции перетаскивания. +Если установлено значение false, цель будет перемещена прямо в текущую позицию мыши. + This property holds whether hover events are handled. Включает/выключает приём элементом событий наведения. @@ -27346,6 +28919,13 @@ Error: %5 Nim + + Nim::NimToolChain + + Nim + Nim + + Nim::NimToolChainConfigWidget @@ -27357,13 +28937,6 @@ Error: %5 &Версия компилятора: - - Nim::NimToolChainFactory - - Nim - Nim - - Nim::NimToolsSettingsWidget @@ -27531,6 +29104,25 @@ Error: %5 Конечное значение анимации. + + Object3DPane + + Type + Тип + + + Change the type of this item. + Меняет тип этого элемента. + + + id + идентификатор + + + Toggles whether this item is exported as an alias property of the root item. + Переключает экспорт этого элемента, как свойства alias корневого элемента. + + OpenEditorsWidget @@ -28070,8 +29662,10 @@ Error: %5 Данные не загружены - The profiler did not produce any samples. Make sure that you are running a recent Linux kernel and that the "perf" utility is available and generates useful call graphs. - Профайлер не сделал ни одного сэмпла. Убедитесь, что используете свежую версию ядра Linux, программа «perf» присутствует и создаёт корректные графы вызовов. + The profiler did not produce any samples. Make sure that you are running a recent Linux kernel and that the "perf" utility is available and generates useful call graphs. +You might find further explanations in the Application Output view. + Профайлер не сделал ни одного сэмпла. Убедитесь, что используете свежую версию ядра Linux, программа «perf» присутствует и создаёт корректные графы вызовов. +Детали проблемы можной узнать в обзоре Вывод приложения. A performance analysis is still in progress. @@ -29402,17 +30996,6 @@ The name of the release build configuration created by default for a qmake proje Теневая сборка: - - ProjectExplorer::BuildEnvironmentWidget - - Clear system environment - Чистая системная среда - - - Build Environment - Среда сборки - - ProjectExplorer::BuildManager @@ -29445,6 +31028,21 @@ The name of the release build configuration created by default for a qmake proje Category for build system issues listed under 'Issues' Сборка + + Clean + Displayed name for a "cleaning" build step + Очистка + + + Deploy + Displayed name for a deploy step + Развёртывание + + + Build + Displayed name for a normal build step + Сборка + Build/Deployment canceled Сборка/развёртывание отменено @@ -29484,13 +31082,6 @@ The name of the release build configuration created by default for a qmake proje Пропуск отключённого этапа %1. - - ProjectExplorer::BuildStep - - Build Step - Этап сборки - - ProjectExplorer::BuildStepList @@ -29573,6 +31164,13 @@ The name of the release build configuration created by default for a qmake proje + + ProjectExplorer::ClangToolChain + + Clang + Clang + + ProjectExplorer::ClangToolChainFactory @@ -29671,10 +31269,6 @@ The name of the release build configuration created by default for a qmake proje Display name of the default deploy configuration Конфигурация развёртывания - - Deploy Settings - Настройки развёртывания - ProjectExplorer::DesktopDevice @@ -30035,6 +31629,10 @@ The name of the release build configuration created by default for a qmake proje ProjectExplorer::GccToolChain + + GCC + GCC + %1 (%2, %3 %4 in %5) %1 (%2, %3 %4 в %5) @@ -30190,6 +31788,17 @@ Excluding: %2 Вывод приложения + + ProjectExplorer::Internal::BuildEnvironmentWidget + + Build Environment + Среда сборки + + + Clear system environment + Чистая системная среда + + ProjectExplorer::Internal::BuildPropertiesSettingsPage @@ -30349,6 +31958,13 @@ Excluding: %2 Этапов сборки нет + + ProjectExplorer::Internal::ClangClToolChain + + clang-cl + clang-cl + + ProjectExplorer::Internal::ClangClToolChainConfigWidget @@ -30360,13 +31976,6 @@ Excluding: %2 Путь к &компилятору: - - ProjectExplorer::Internal::ClangClToolChainFactory - - clang-cl - clang-cl - - ProjectExplorer::Internal::ClangToolChainConfigWidget @@ -30374,13 +31983,6 @@ Excluding: %2 Родительский инструментарий: - - ProjectExplorer::Internal::ClangToolChainFactory - - Clang - - - ProjectExplorer::Internal::CodeStyleSettingsPropertiesPage @@ -30549,11 +32151,55 @@ Excluding: %2 - ProjectExplorer::Internal::CustomToolChainConfigWidget + ProjectExplorer::Internal::CustomParsersAspect - Custom Parser Settings... - Настроить обработчик... + Custom Output Parsers + Особые обработчики вывода + + + ProjectExplorer::Internal::CustomParsersBuildWidget + + Custom Output Parsers + Особые обработчики вывода + + + + ProjectExplorer::Internal::CustomParsersSelectionWidget + + There are no custom parsers active + Особые обработчики не активны + + + There are %n custom parsers active + + Активен %n особый обработчик + Активно %n особых обработчика + Активно %n особых обработчиков + + + + + ProjectExplorer::Internal::CustomParsersSettingsPage + + Add... + Добавить... + + + Remove + Удалить + + + New Parser + Создать + + + Custom Output Parsers + Особые обработчики вывода + + + + ProjectExplorer::Internal::CustomToolChainConfigWidget MACRO[=VALUE] MACRO[=VALUE] @@ -30607,13 +32253,6 @@ Excluding: %2 &Обработчик ошибок: - - ProjectExplorer::Internal::CustomToolChainFactory - - Custom - Особый - - ProjectExplorer::Internal::CustomWizardPage @@ -31019,13 +32658,6 @@ What should Qt Creator do now? - - ProjectExplorer::Internal::GccToolChainFactory - - GCC - - - ProjectExplorer::Internal::ImportWidget @@ -31130,13 +32762,6 @@ What should Qt Creator do now? Название - - ProjectExplorer::Internal::LinuxIccToolChainFactory - - ICC - ICC - - ProjectExplorer::Internal::MakeStep @@ -31168,13 +32793,6 @@ What should Qt Creator do now? Запускать этот этап только для сборки верхнего уровня. - - ProjectExplorer::Internal::MingwToolChainFactory - - MinGW - - - ProjectExplorer::Internal::MiniProjectTargetSelector @@ -31263,6 +32881,10 @@ What should Qt Creator do now? ProjectExplorer::Internal::MsvcToolChain + + MSVC + MSVC + Failed to retrieve MSVC Environment from "%1": %2 @@ -31289,13 +32911,6 @@ What should Qt Creator do now? &ABI: - - ProjectExplorer::Internal::MsvcToolChainFactory - - MSVC - - - ProjectExplorer::Internal::ParseIssuesDialog @@ -31798,6 +33413,13 @@ to project "%2". Новое название конфигурации развёртывания <b>%1</b>: + + ProjectExplorer::Internal::SelectionWidget + + Custom output parsers scan command line output for user-provided error patterns<br>in order to create entries in the issues pane.<br>The parsers can be configured <a href="dummy">here</a>. + Особые обработчики вывода разбирают вывод командной строки на предмет<br>пользовательских шаблонов ошибок, чтобы создать записи на панели проблем.<br>Обработчики могут быть настроены <a href="dummy">здесь</a>. + + ProjectExplorer::Internal::SessionDialog @@ -32565,10 +34187,6 @@ to project "%2". Creates a C++ header and a source file for a new class that you can add to a C++ project. Создание заголовочного и исходного файлов C++ для нового класса, добавляемого в проект C++. - - C++ - C++ - C++ Class Класс C++ @@ -32665,22 +34283,6 @@ to project "%2". Test case name: Имя теста: - - Creates a C++ header file that you can add to a C++ project. - Создание заголовочного файла С++, который можно добавить в проект С++. - - - C++ Header File - Заголовочный файл С++ - - - Creates a C++ source file that you can add to a C++ project. - Создание файла исходных текстов С++, который можно добавить в проект С++. - - - C++ Source File - Файл исходных текстов C++ - Choose a Form Template Выбор шаблона формы @@ -33064,10 +34666,6 @@ Use this only if you are prototyping. You cannot create a full application with %{JS: Cpp.classToFileName(value('Class'), Util.preferredSuffix('text/x-c++src'))} %{JS: Cpp.classToFileName(value('Class'), Util.preferredSuffix('text/x-c++src'))} - - Python module: - Модуль Python: - %{JS: Util.fileName(value('Class'), Util.preferredSuffix('text/x-python'))} %{JS: Util.fileName(value('Class'), Util.preferredSuffix('text/x-python'))} @@ -33168,6 +34766,18 @@ Use this only if you are prototyping. You cannot create a full application with Library Библиотека + + Catch2 + Catch2 + + + Catch2 include directory (optional): + Каталог заголовков Catch2 (опционально): + + + Use Qt libraries + Использовать библиотеки Qt + This wizard creates a custom Qt Creator plugin. Этот мастер создаст новый модуль Qt Creator. @@ -33252,6 +34862,39 @@ Use this only if you are prototyping. You cannot create a full application with Qt Creator Plugin Модуль Qt Creator + + C/C++ + C/C++ + + + Qt for Python module: + Модуль Qt for Python: + + + You can choose Qt classes only if you select a Qt for Python module. + Выбрать классы Qt можно только при выборе модуля Qt for Python. + + + Creates a header file that you can add to a C/C++ project. + Создание заголовочного файла для проекта на C/С++. + + + C/C++ Header File + Заголовочный файл C/С++ + + + Creates a source file that you can add to a C/C++ project. + Создание файла исходных текстов для проекта на C/С++. + + + C/C++ Source File + Файл исходных текстов C/C++ + + + Meson + Судя по всему, это такая система сборки + Meson + Application (Qt) Приложение (Qt) @@ -33462,7 +35105,7 @@ Preselects a desktop Qt for building the application if available. Application (Qt for Python) - Приложение (Qt для Python) + Приложение (Qt for Python) Qt for Python - Empty @@ -34021,6 +35664,13 @@ Preselects a desktop Qt for building the application if available. Desktop + + ProjectExplorer::LinuxIccToolChain + + ICC + ICC + + ProjectExplorer::LocalEnvironmentAspect @@ -34044,7 +35694,7 @@ Preselects a desktop Qt for building the application if available. Make command missing. Specify Make command in step configuration. - Отсутствует команда Make. Укажите её в настройках шага. + Отсутствует команда Make. Укажите её в настройках этапа. @@ -34074,6 +35724,13 @@ Preselects a desktop Qt for building the application if available. <b>Make:</b>программа %1 не найдена в системе. + + ProjectExplorer::MingwToolChain + + MinGW + MinGW + + ProjectExplorer::OsParser @@ -34103,7 +35760,7 @@ Please close all running instances of your application before starting a build.< Custom Process Step Default ProcessStep display name - Особый шаг обработки + Особый этап обработки Command: @@ -34169,6 +35826,18 @@ Please close all running instances of your application before starting a build.< Select the Root Directory Выбор корневого каталога + + Replacement for "%1" + Замена для «%1» + + + Project "%1" was configured for kit "%2" with id %3, which does not exist anymore. The new kit "%4" was created in its place, in an attempt not to lose custom project settings. + Проект «%1» был сконфигурирован под несуществующий более комплект «%2» (id %3). Чтобы не потерять настройки проекта, был создан новый комплект «%4». + + + Could not find any qml_*.qm file at '%1' + Не удалось найти ни один файл qml_*.qm в «%1» + ProjectExplorer::ProjectExplorerPlugin @@ -34479,14 +36148,19 @@ Please close all running instances of your application before starting a build.< Не удалось добавить файлы в проект - Removing File Failed - Не удалось убрать файл + Remove More Files? + Это заголовок окна + Удаление файлов - File %1 was not removed, because the project has changed in the meantime. -Please try again. - Файл «%1» не был удалён, так как проект был изменён в то же время. -Попробуйте ещё раз. + Remove these files as well? + %1 + Удалить ещё следующие файлы? + %1 + + + Removing File Failed + Не удалось убрать файл _copy @@ -34679,6 +36353,10 @@ Do you want to ignore them? Set "%1" as Active Project Сделать «%1» активным проектом + + Expand + Развернуть + Expand All Развернуть всё @@ -34747,11 +36425,6 @@ Do you want to ignore them? Failed opening project "%1": Project is not a file. Не удалось открыть проект «%1»: проект не является файлом. - - Build - Build step - Сборка - A build is in progress. Выполняется сборка. @@ -34785,10 +36458,6 @@ Do you want to ignore them? The file %1 was renamed to %2, but the project file %3 could not be automatically changed. Файл «%1» был переименован в «%2», но не удалось автоматически изменить файл проекта «%3». - - Could not remove file %1 from project %2. - Не удалось удалить файл «%1» из проекта «%2». - The project "%1" has no active kit. У проекта «%1» нет активного комплекта. @@ -34801,6 +36470,16 @@ Do you want to ignore them? Cannot run "%1". Не удалось запустить «%1». + + File "%1" was not removed, because the project has changed in the meantime. +Please try again. + Файл «%1» не был удалён, так как проект был изменён в то же время. +Попробуйте ещё раз. + + + Could not remove file "%1" from project "%2". + Не удалось удалить файл «%1» из проекта «%2». + Choose File Name Выбор имени файла @@ -35034,7 +36713,7 @@ These files are preserved. ProjectExplorer::SeparateDebugInfoAspect - Separate Debug Info: + Separate debug info: Отделять отладочную информацию: @@ -35189,8 +36868,12 @@ These files are preserved. ProjectExplorer::TargetSetupPage - <span style=" font-weight:600;">No suitable kits found.</span><br/>Add a kit in the <a href="buildandrun">options</a> or via the maintenance tool of the SDK. - <span style=" font-weight:600;">Отсутствуют подходящие комплекты.</span><br/>Добавьте комплект в <a href="buildandrun">настройках</a> или через инструмент обслуживания SDK. + No suitable kits found. + Отсутствуют подходящие комплекты. + + + Add a kit in the <a href="buildandrun">options</a> or via the maintenance tool of the SDK. + Добавьте комплект в <a href="buildandrun">настройках</a> или через инструмент обслуживания SDK. Select all kits @@ -35222,16 +36905,12 @@ These files are preserved. ProjectExplorer::Task You asked to build the current Run Configuration's build target only, but it is not associated with a build target. Update the Make Step in your build settings. - Запрос на сборку только цели текущей конфигурации запуска, но она не связана с целью. Обновите шаги сборки в настройках сборки. + Запрос на сборку только цели текущей конфигурации запуска, но она не связана с целью. Обновите этапы сборки в настройках сборки. %1 needs a compiler set up to build. Configure a compiler in the kit options. %1 требует наличия компилятора для сборки. Задайте его в настройках комплекта. - - %1 needs a build configuration set up to build. Configure a build configuration in the project settings. - %1 требует наличия конфигурация сборки. Выберите её в настройках проекта. - ProjectExplorer::TerminalAspect @@ -35525,6 +37204,37 @@ App ID: %2 Версия Qt не поддерживается + + Python + + REPL + REPL + + + Open interactive Python. + Открытие интерактивного Python. + + + REPL Import File + Файл импорта REPL + + + Open interactive Python and import file. + Открытие интерактивного Python и импорт файла. + + + REPL Import * + REPL импорт * + + + Open interactive Python and import * from file. + Открытие интерактивного Python и импорт * из файла. + + + Failed to run Python (%1): "%2". + Не удалось запустить Python (%1): «%2». + + Python::Internal::InterpreterAspect @@ -35555,8 +37265,8 @@ App ID: %2 Найден сервер языка Python для %1 (%2). Использовать его для текущего документа? - Setup - Задать + Set Up + Настроить Enable Python language server for %1 (%2)? @@ -35756,6 +37466,14 @@ Copy the path to the source files to the clipboard? Close Tab Закрыть вкладку + + IncrediBuild for Windows + IncrediBuild для Windows + + + IncrediBuild for Linux + IncrediBuild для Linux + QSsh::SftpFileSystemModel @@ -36352,8 +38070,8 @@ Copy the path to the source files to the clipboard? Не удалось запустить процесс qbs. - The qbs process sent invalid data. - Процесс qbs отправил неверные данные. + The qbs process sent unexpected data. + Процесс qbs отправил неожиданные данные. The qbs API level is not compatible with what Qt Creator expects. @@ -36542,6 +38260,10 @@ The affected files are: Qdb::Internal::QdbMakeDefaultAppStep + + Change default application + Сменить приложение по умолчанию + Set this application to start by default Установите запуск этого приложения по умолчанию @@ -37232,6 +38954,10 @@ Neither the path to the library nor the path to its includes is added to the .pr Add Library... Добавить библиотеку... + + QMake + QMake + QmakeProjectManager::Internal::QmakeSettingsPage @@ -37311,7 +39037,7 @@ Neither the path to the library nor the path to its includes is added to the .pr Could not determine which "make" command to run. Check the "make" step in the build configuration. - Не удалось определить, какую команду «make» запускать. Проверьте шаг «make» в конфигурации сборки. + Не удалось определить, какую команду «make» запускать. Проверьте этап «make» в конфигурации сборки. Configuration unchanged, skipping qmake step. @@ -37323,7 +39049,7 @@ Neither the path to the library nor the path to its includes is added to the .pr <no Make step found> - <шаг Make не найден> + <этап Make не найден> @@ -37473,13 +39199,6 @@ Neither the path to the library nor the path to its includes is added to the .pr Каталог сборки не на том же уровне, что каталог исходников. Из-за этого может возникнуть сбой сборки. - - QmakeProjectManager::QmakeManager - - QMake - QMake - - QmakeProjectManager::QmakePriFile @@ -37728,6 +39447,127 @@ Neither the path to the library nor the path to its includes is added to the .pr Аннотация + + QmlDesigner::AssetExportDialog + + Choose Export Path + Выбор пути экспорта + + + Open + Открыть + + + Advanced Options + Дополнительно + + + Export assets + Экспортировать ресурсы + + + Export + Экспортировать + + + Export QML + Экспорт QML + + + Export path: + Путь экспорта: + + + + QmlDesigner::AssetExporter + + Exporting metadata at %1. Export assets: + Экспорт метаданных в %1. Экспорт ресурсов: + + + Yes + Да + + + No + Нет + + + Cancelling export. + Отмена экспорта. + + + Unknown error. + Неизвестная ошибка. + + + Loading file is taking too long. + Загрузка файлов длится очень долго. + + + Cannot parse. QML file has errors. + Не удалось разобрать. Файл QML содержит ошибки. + + + Loading QML failed. %1 + Не удалось загрузить QML. %1 + + + Error saving QML file. %1 + Не удалось сохранить файл QML. %1 + + + Unknown + Причина неизвестна + + + Exporting file %1. + Экспорт файла %1. + + + Export cancelled. + Экспорт отменён. + + + Writing metadata to file %1. + Запись метаданных в файл %1. + + + Empty JSON document. + Пустой документ JSON. + + + Writing metadata failed. %1 + Не удалось записать метаданные. %1 + + + Export finished. + Экспорт завершён. + + + Error creating asset directory. %1 + Не удалось создать каталог ресурсов. %1 + + + Error saving asset. %1 + Не удалось сохранить ресурсы. %1 + + + + QmlDesigner::AssetExporterPlugin + + Asset Export + Экспорт ресурсов + + + Export QML + Экспорт QML + + + Export QML code of the current project. + Экспорт кода QML текущего проекта. + + QmlDesigner::BackgroundAction @@ -37757,6 +39597,17 @@ Neither the path to the library nor the path to its includes is added to the .pr Ctrl+Space + + QmlDesigner::CapturingConnectionManager + + QML Emulation Layer (QML Puppet) Crashed + Слой эмуляции QML (QML Puppet) аварийно завершился + + + You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. + Эмуляция аварийно завершилась при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова. + + QmlDesigner::ColorTool @@ -37889,6 +39740,20 @@ Neither the path to the library nor the path to its includes is added to the .pr Не удалось добавить в проект импорт QtQuick3D. + + QmlDesigner::Edit3DWidget + + Your file does not import Qt Quick 3D.<br><br>To create a 3D view, add the QtQuick3D import to your file in the QML Imports tab of the Library view. Or click <a href="#add_import"><span style="text-decoration:none;color:%1">here</span></a> here to add it immediately.<br><br>To import 3D assets from another tool, click on the "Add New Assets..." button in the Assets tab of the Library view. + Файл не импортирует Qt Quick 3D.<br><br>Для создания трёхмерного вида добавьте импорт QtQuick3D в файл на вкладке QML Imports обзора библиотеки. Или щёлкните <a href="#add_import"><span style="text-decoration:none;color:%1">здесь</span></a>, чтобы добавить сейчас.<br><br>Для импорта 3D ресурсов из других программ, нажмите кнопку «Добавить новые ресурсы...» на вкладке Ресурсы обзора библиотеки. + + + + QmlDesigner::FilePathModel + + Canceling QML files preparation. + Отмена подготовки файлов QML. + + QmlDesigner::FormEditorAnnotationIcon @@ -37957,6 +39822,22 @@ Neither the path to the library nor the path to its includes is added to the .pr Override height of root item. Переопределение высоты корневого элемента. + + Zoom in + Увеличить + + + Zoom out + Уменьшить + + + Zoom screen to fit all content + Растянуть содержимое на весь экран + + + Zoom screen to fit current selection + Растянуть выделенное на весь экран + Reset View Сбросить вид @@ -38005,6 +39886,75 @@ Neither the path to the library nor the path to its includes is added to the .pr Ошибка команды «%1» (код завершения %2). + + QmlDesigner::GlobalAnnotationEditor + + Global Annotation + Общая аннотация + + + Delete this annotation? + Удалить эту аннотацию? + + + + QmlDesigner::GlobalAnnotationEditorDialog + + Add Status + Добавить состояние + + + In Progress + В процессе + + + In Review + Обсуждается + + + Done + Готово + + + Tab 1 + Вкладка 1 + + + Tab 2 + Вкладка 2 + + + Add Comment + Добавить комментарий + + + Remove Comment + Удалить комментарий + + + Delete this comment? + Удалить этот комментарий? + + + Global Annotation Editor + Редактор общей аннотации + + + Annotation + Аннотация + + + + QmlDesigner::HyperlinkDialog + + Link + Ссылка + + + Anchor + Привязка + + QmlDesigner::ImportLabel @@ -38026,6 +39976,17 @@ Neither the path to the library nor the path to its includes is added to the .pr Управление импортом + + QmlDesigner::InteractiveConnectionManager + + Cannot Connect to QML Emulation Layer (QML Puppet) + Невозможно подключиться к слою эмуляции QML (QML Puppet) + + + The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. + Возможно, процесс эмуляции QML (QML Puppet) не отвечает. Попробуйте переключиться на другой комплект. + + QmlDesigner::Internal::BackendModel @@ -38135,6 +40096,14 @@ Neither the path to the library nor the path to its includes is added to the .pr Open Connection Editor Открыть редактор подключений + + Open Binding Editor + Открыть редактор связей + + + Reset Property + Сбросить свойство + Add binding or connection. Добавление привязки или соединения. @@ -38173,6 +40142,10 @@ Neither the path to the library nor the path to its includes is added to the .pr Switch the active workspace. Переключение активной сессии. + + Edit global annotation for current file. + Изменить глобальное описание текущего файла. + QmlDesigner::Internal::DynamicPropertiesModel @@ -38671,6 +40644,45 @@ Neither the path to the library nor the path to its includes is added to the .pr Не удалось добавить файл %1 в проект. + + QmlDesigner::ListModelEditorDialog + + Add Row + Добавить строку + + + Remove Columns + Удалить столбцы + + + Add Column + Добавить столбец + + + Move down (CTRL + Down). + Переместить ниже (CTRL + Вниз). + + + Move up (CTRL + Up). + Переместить выше (CTRL + Вверх). + + + Add Property + Добавление свойства + + + Property Name: + Имя свойства: + + + Change Propertry + Изменение свойства + + + Column Name: + Имя столбца: + + QmlDesigner::NavigatorTreeModel @@ -38679,7 +40691,7 @@ Neither the path to the library nor the path to its includes is added to the .pr Toggles whether this item is exported as an alias property of the root item. - Включает экспорт элемента, как псевдонима свойства корневого элемента. + Переключает экспорт этого элемента, как свойства alias корневого элемента. Toggles the visibility of this item in the form editor. @@ -38704,7 +40716,7 @@ This is independent of the visibility property in QML. %1 is an invalid id. - %1 ― неверный идентификатор. + Идентификатор %1 недопустим. %1 already exists. @@ -38750,25 +40762,6 @@ This is independent of the visibility property in QML. Только видимые элементы. - - QmlDesigner::NodeInstanceServerProxy - - Cannot Connect to QML Emulation Layer (QML Puppet) - Невозможно подключиться к слою эмуляции QML (QML Puppet) - - - The executable of the QML emulation layer (QML Puppet) may not be responding. Switching to another kit might help. - Возможно, процесс эмуляции QML (QML Puppet) не отвечает. Попробуйте переключиться на другой комплект. - - - QML Emulation Layer (QML Puppet) Crashed - Слой эмуляции QML (QML Puppet) аварийно завершился - - - You are recording a puppet stream and the emulations layer crashed. It is recommended to reopen the Qt Quick Designer and start again. - Эмуляция аварийно завершилась при записи puppet-потока. Рекомендуется переоткрыть Qt Quick Designer и запустить запись снова. - - QmlDesigner::NodeInstanceView @@ -38859,7 +40852,7 @@ This is independent of the visibility property in QML. %1 is an invalid id. - %1 является неверным идентификатором. + Идентификатор %1 недопустим. %1 already exists. @@ -38929,6 +40922,101 @@ This is independent of the visibility property in QML. Живой предпросмотр + + QmlDesigner::RichTextEditor + + &Undo + &Отменить + + + &Redo + &Повторить + + + &Bold + &Жирный + + + &Italic + &Курсив + + + &Underline + &Подчёркивание + + + Hyperlink Settings + Настройки ссылок + + + &Left + По &левому краю + + + C&enter + По &середине + + + &Right + По &правому краю + + + &Justify + По &ширине + + + Bullet List + Список + + + Numbered List + Нумерованный список + + + &Color... + &Цвет... + + + &Table Settings + Настройки &таблицы + + + Create Table + Создать таблицу + + + Remove Table + Удалить таблицу + + + Add Row + Добавить строку + + + Add Column + Добавить столбец + + + Remove Row + Удалить строку + + + Remove Column + Удалить столбец + + + Merge Cells + Объединить ячейки + + + Split Row + Разделить строку + + + Split Column + Разделить столбец + + QmlDesigner::SetFrameValueDialog @@ -39208,7 +41296,7 @@ This is independent of the visibility property in QML. %1 is an invalid id. - %1 ― неверный идентификатор. + Идентификатор %1 недопустим. %1 already exists. @@ -39255,7 +41343,7 @@ This is independent of the visibility property in QML. %1 is an invalid id. - %1 ― неверный идентификатор. + Идентификатор %1 недопустим. %1 already exists. @@ -39437,6 +41525,157 @@ This is independent of the visibility property in QML. Add Timeline Добавить временную шкалу + + This file does not contain a timeline. <br><br> To create an animation, add a timeline by clicking the + button. + Этот файл не содержит временной шкалы. <br> <br> Добавьте временную шкалу, нажав кнопку +, чтобы создать анимацию. + + + To edit the timeline settings, click + Для изменения настроек временной шкалы, щёлкните + + + + QmlDesigner::TransitionEditorSettingsDialog + + Transition Settings + Настройки перехода + + + Add Transition + Добавить переход + + + Remove Transition + Удалить переход + + + No Transition + Нет перехода + + + + QmlDesigner::TransitionEditorToolBar + + Transition Settings + Настройки перехода + + + Easing Curve Editor + Редактор переходных кривых + + + Curve Editor + Редактор кривых + + + Zoom Out + Уменьшить + + + Zoom In + Увеличить + + + + QmlDesigner::TransitionEditorView + + No States Defined + Состояния не определены + + + There are no states defined in this component. + У данного компонента не определены состояния. + + + No properties to animate found. + Не обнаружено свойств для анимации. + + + To add transitions, first change the properties that you want to animate in states (%1). + Чтобы добавить переходы, сначала измените свойства, которые необходимо анимировать в состояниях (%1). + + + Transition Editor + Редактор переходов + + + + QmlDesigner::TransitionEditorWidget + + Transition + Title of transition view + Переход + + + Add Transition + Добавить переход + + + This file does not contain transitions. <br><br> To create an animation, add a transition by clicking the + button. + В этом файле отсутствуют переходы.<br><br> Чтобы создать анимацию, добавьте переход нажатием на кнопку +. + + + To edit the transition settings, click + Для изменения настроек перехода нажмите + + + + QmlDesigner::TransitionForm + + Timeline Settings + Настройки временной шкалы + + + Transition ID: + ID перехода + + + From + От + + + To + До + + + Invalid Id + Неверный идентификатор + + + %1 is an invalid id. + Идентификатор %1 недопустим. + + + %1 already exists. + %1 уже существует. + + + + QmlDesigner::TransitionTool + + Add Transition + Добавить переход + + + Remove Transitions + Удалить переходы + + + Remove All Transitions + Удалить все переходы + + + Do you really want to remove all transitions? + Удалить все переходы? + + + Remove Dangling Transitions + Удалить болтающиеся переходы + + + Transition Tool + Переходы + QmlDesignerAddResources @@ -39448,6 +41687,10 @@ This is independent of the visibility property in QML. Font Files Файлы шрифтов + + Add Custom Effect + Добавить особый эффект + QmlDesignerContextMenu @@ -39503,9 +41746,21 @@ This is independent of the visibility property in QML. Connect Подключить + + Select Effect + Выбрать эффект + + + Group + Объединить + Flow - Перетекание + Перетекание + + + Flow Effects + Эффекты перетекания Stacked Container @@ -39551,6 +41806,10 @@ This is independent of the visibility property in QML. Reset Position Сбросить позицию + + Merge File With Template + Объединить файл с шаблоном + Go to Implementation Перейти к реализации @@ -39561,7 +41820,19 @@ This is independent of the visibility property in QML. Create Flow Action - Создать перетекание + Создать перетекание + + + Set Flow Start + Задать начало перетекания + + + Group in GroupItem + Объединить в GroupItem + + + Remove GroupItem + Удалить GroupItem Add Item @@ -39641,7 +41912,11 @@ This is independent of the visibility property in QML. Add flow action. - Добавление перетекания. + Добавление перетекания. + + + Edit List Model... + Изменить модель списка... Reset z Property @@ -39836,6 +42111,29 @@ For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt. - свойство qmlImportPaths продукта для проектов Qbs; - свойство importPaths для проектов qmlproject; - переменную QML_IMPORT_PATH в CMakeCache.txt для проектов CMake. + + + + Implicit import '%1' of QML module '%2' not found. + +Import paths: +%3 + +For qmake projects, use the QML_IMPORT_PATH variable to add import paths. +For Qbs projects, declare and set a qmlImportPaths property in your product to add import paths. +For qmlproject projects, use the importPaths property to add import paths. +For CMake projects, make sure QML_IMPORT_PATH variable is in CMakeCache.txt. + + Неявный импорт «%1» модуля QML «%2» не найден. + +Пути импорта: +%3 + +Для добавления путей импорта: +Для проектов qmake используйте переменную QML_IMPORT_PATH. +Для проектов Qbs объявите и установите свойство qmlImportPaths в своем продукте. +Для проектов qmlproject используйте свойство importPaths. +Для проектов CMake убедитесь, что переменная QML_IMPORT_PATH находится в CMakeCache.txt. @@ -40184,6 +42482,10 @@ For more information, see the "Checking Code Syntax" documentation.Hit maximum recursion limit when visiting AST. Достигнута максимальная глубина рекурсии обработки AST. + + Type cannot be instantiated recursively (%1). + Рекурсивное инстанцирование типа (%1) невозможно. + Invalid property name "%1". Неверное название свойства «%1». @@ -40523,14 +42825,6 @@ For more information, see the "Checking Code Syntax" documentation.SnippetProvider QML - - Rename Symbol Under Cursor - Переименовать символ под курсором - - - Ctrl+Shift+R - Ctrl+Shift+R - Run Checks Запустить проверки @@ -40861,11 +43155,82 @@ the QML editor know about a likely URI. QML Preview Предпросмотр QML + + Test translations + Тестирование переводов + Preview File Файл предпросмотра + + QmlPreview::ProjectFileSelectionsWidget + + Files to test: + Тестируемые файлы: + + + + QmlPreview::QmlDebugTranslationWidget + + multiple files + множество файлов + + + Enable elide warning + что такое не понимаю + Разрешить пропускающее предупреждение + + + Show log + Показать историю + + + Load + Загрузка + + + Save + Сохранить + + + Clear + Очистить + + + Translation issues + Проблемы паревода + + + Current language is '<b>%1</b>' can be changed in the 'Translation' tab. + Текущий язык «<b>%1</b>» можно сменить во вкладке «Перевод». + + + Select which language should be tested: + Выберите язык для тестирования: + + + Choose file to save logged issues. + Выбор файла для сохранения списка проблем. + + + current file: %1 + текущий файл: %1 + + + empty + пуст + + + Stop + Остановить + + + Run language tests + Проверить перевод + + QmlProfiler::Internal::DebugMessagesModel @@ -41963,6 +44328,17 @@ Saving failed. Основной файл QML: + + QmlProjectManager::QmlMultiLanguageAspect + + Use MultiLanguage translation database. + Использовать БД переводов. + + + Enable loading application with special desktop SQLite translation database. + Включение загрузки приложения со специальной базой даных переводов на множество языков (SQLite). + + QmlProjectManager::QmlProject @@ -42307,6 +44683,13 @@ Are you sure you want to continue? Добавить... + + Qnx::Internal::QnxToolChain + + QCC + QCC + + Qnx::Internal::QnxToolChainConfigWidget @@ -42323,13 +44706,6 @@ Are you sure you want to continue? &ABI: - - Qnx::Internal::QnxToolChainFactory - - QCC - QCC - - Qnx::Internal::Slog2InfoRunner @@ -42643,8 +45019,8 @@ For more details, see /etc/sysctl.d/10-ptrace.conf %1 скомпонован с «%2». - <html><body>Qt installation information was not found in "%1". Choose a directory that contains one of the files <pre>%2</pre> - <html><body>Не найдена информация о Qt в «%1». Укажите каталог, содержащий один из файлов <pre>%2</pre> + Qt installation information was not found in "%1". Choose a directory that contains one of the files %2 + Не найдена информация о Qt в «%1». Укажите каталог, содержащий один из файлов %2 Choose Qt Installation @@ -42925,7 +45301,7 @@ For more details, see /etc/sysctl.d/10-ptrace.conf Профиль Qt - Location of qmake) + Location of qmake Размещение qmake @@ -43709,7 +46085,7 @@ If you do not have a private key yet, you can also create one here. The "make install" step should probably not be last in the list of deploy steps. Consider moving it up. - Шаг «make install», обычно, должен быть не последним в списке шагов развёртывания. Возможно, стоит его поднять. + Этап «make install», обычно, должен быть не последним в списке этапов развёртывания. Возможно, стоит его поднять. You need to add an install statement to your CMakeLists.txt file for deployment to work. @@ -44175,6 +46551,10 @@ If you do not have a private key yet, you can also create one here. Copy Resource Path to Clipboard Скопировать путь до ресурса в буфер обмена + + Sort Alphabetically + Сортировать по алфавиту + ResourceEditor::Internal::ResourceView @@ -44201,6 +46581,10 @@ If you do not have a private key yet, you can also create one here. The <RCC> root element is missing. Отсутствует корневой элемент <RCC>. + + Cannot save file. + Не удалось сохранить файл. + ResourceTopLevelNode @@ -45178,6 +47562,10 @@ Row: %4, Column: %5 SDCC %1 (%2, %3) SDCC %1 (%2, %3) + + SDCC + SDCC + SelectionModeToggleAction @@ -45289,7 +47677,7 @@ Row: %4, Column: %5 ShowGridAction - Toggle grid visibility + Toggle Grid Visibility Показать/скрыть сетку @@ -45426,6 +47814,14 @@ Row: %4, Column: %5 Х.з. что такое (может отсутствовать, быть слева, справа и посередине). Вычеркивание + + Maximum line count + Максимальное число строк + + + Limits the number of lines that the text item will show. + Ограничивает максимальное число отображаемых строк текстовым элементом. + Alignment Выравнивание @@ -45450,6 +47846,26 @@ Row: %4, Column: %5 Specifies how the font size of the displayed text is determined. Задаёт режим определения размера шрифта отображаемого текста. + + Minimum size + Минимальный размер + + + Pixel + Пиксель + + + Specifies the minimum font pixel size of scaled text. + Задаёт минимальный пиксельный размер шрифта масштабируемого теста. + + + Point + Пункт + + + Specifies the minimum font point size of scaled text. + Задаёт минимальный размер шрифта масштабируемого теста в пунктах. + Line height Высота строки @@ -45458,6 +47874,45 @@ Row: %4, Column: %5 Sets the line height for the text. Задаёт высоту строки текста. + + Line height mode + Режим высоты строки + + + Determines how the line height is specified. + Определяет единицы измерения высоты строки. + + + + StateSpecifics + + State + Состояние + + + When + Когда + + + Sets when the state should be applied. + Задаёт когда состояние должно примениться. + + + Name + Имя + + + Holds the name of the state. + Содержит имя состояния. + + + Extend + Расширение + + + Holds the state that this state extends. + Содержит состояние, в котором это состояние расширяется. + StatesDelegate @@ -45477,6 +47932,22 @@ Row: %4, Column: %5 Reset Default Сбросить умолчание + + Edit Annotation + Изменить аннотацию + + + Add Annotation + Добавить аннотацию + + + Remove Annotation + Удалить аннотацию + + + Default + По умолчанию + StatesList @@ -45788,6 +48259,17 @@ Row: %4, Column: %5 Фиксация Subversion + + SymbolSupport + + Find References with %1 for: + Найти ссылки с %1 для: + + + Search Again to update results and re-enable Replace + Выполните поиск снова, для обновления результатов и разрешения замены + + SyntaxHighlightingCLI @@ -45925,16 +48407,16 @@ Row: %4, Column: %5 Щёлкните для активации - Enable Kit "%1" for Project "%2" - Включить комплект «%1» для проекта «%2» + Enable Kit for Project "%2" + Включить комплект для проекта «%1» - Enable Kit "%1" for All Projects - Включить комплект «%1» для всех проектов + Enable Kit for All Projects + Включить комплект для всех проектов - Disable Kit "%1" for Project "%2" - Отключить комплект «%1» для проекта «%2» + Disable Kit for Project "%2" + Отключить комплект для проекта «%1» Cancel Build and Disable Kit in This Project @@ -45957,12 +48439,12 @@ Row: %4, Column: %5 Остановить процесс сборки и удалить комплект? - Disable Kit "%1" for All Projects - Отключить комплект «%1» для всех проектов + Disable Kit for All Projects + Отключить комплект для всех проектов Copy Steps From Another Kit... - Скопировать шаги из другого комплекта... + Скопировать этапы из другого комплекта... Build @@ -46019,6 +48501,25 @@ Row: %4, Column: %5 Мои задачи + + TemplateMerge + + Merge With Template + Объединение с шаблоном + + + &Browse... + &Обзор... + + + Template: + Шаблон: + + + Browse Template + Указать шаблон + + TestTreeItem @@ -46611,6 +49112,18 @@ Specifies how backspace interacts with indentation. Default line endings: Конец строки по умолчанию: + + For the file patterns listed, do not trim trailing whitespace. + Список шаблонов имён файлов, для которых не нужна обрезка пробелов в конце строк. + + + Skip clean whitespace for file types: + Не очищать пробелы у файлов: + + + List of wildcard-aware file patterns, separated by commas or semicolons. + Список шаблонов имён файлов, разделенных запятыми или точками с запятой. + TextEditor::Internal::CodeStyleDialog @@ -46662,29 +49175,6 @@ Specifies how backspace interacts with indentation. Импорт... - - TextEditor::Internal::CodecSelector - - Text Encoding - Кодировка текста - - - The following encodings are likely to fit: - Лучше всего подходят следующие кодировки: - - - Select encoding for "%1".%2 - Выберите кодировку для «%1».%2 - - - Reload with Encoding - Перезагрузить в кодировке - - - Save with Encoding - Сохранить в кодировке - - TextEditor::Internal::ColorScheme @@ -47211,6 +49701,10 @@ In addition, Shift+Enter inserts an escape character at the cursor position and Filter tree Настроить отображение + + Sort Alphabetically + Сортировать по алфавиту + TextEditor::Internal::Snippets @@ -47269,6 +49763,11 @@ In addition, Shift+Enter inserts an escape character at the cursor position and group:'C++' trigger:'struct' шаблон + + (type name READ name WRITE setName NOTIFY nameChanged) + group:'C++' trigger:'Q_PROPERTY' + (введите <имя> READ <имя> WRITE set<Имя> NOTIFY <имя>Changed) + with targets group:'QML' trigger:'NumberAnimation' @@ -47625,6 +50124,14 @@ Influences the indentation of continuation lines. Ctrl+Shift+U Ctrl+Shift+U + + Rename Symbol Under Cursor + Переименовать символ под курсором + + + Ctrl+Shift+R + Ctrl+Shift+R + Jump to File Under Cursor Перейти к файлу под курсором @@ -48506,6 +51013,46 @@ Will not be applied to whitespace in comments and strings. Applied to lines describing changes in VCS log. Применяется к строкам, описывающим изменения в журнале VCS. + + Log Author Name + Логировать имя автора + + + Applied to author names in VCS log. + Применимо к именам авторов в истории VCS. + + + Log Commit Date + Логировать дату фиксации + + + Applied to commit dates in VCS log. + Применимо к датам фиксаций в истории VCS. + + + Log Commit Hash + Логировать хэш фиксации + + + Applied to commit hashes in VCS log. + Применимо к хэшам фиксаций в истории VCS. + + + Log Decoration + Логировать оформление + + + Applied to commit decorations in VCS log. + Применимо к оформлениям фиксаций в истории VCS. + + + Log Commit Subject + Логировать заголовок фиксации + + + Applied to commit subjects in VCS log. + Применимо к заголовкам фиксаций в истории VCS. + Error Ошибка @@ -48573,6 +51120,10 @@ Will not be applied to whitespace in comments and strings. TextEditor::TextEditorWidget + + Cursor position: %1 + Положение курсора: %1 + Other annotations Другие аннотации @@ -48707,6 +51258,14 @@ Will not be applied to whitespace in comments and strings. Sets the margin, in pixels, around the text in the Text Edit. Задаёт отступ в пикселях вокруг текста в текстовом редакторе. + + Maximum length + Максимальная длина + + + Sets the maximum permitted length of the text in the TextInput. + Задаёт максимальную допустимую длину текста в TextInput. + Flags Флаги @@ -49106,12 +51665,54 @@ The trace data is lost. Обновление + + Utils::Archive + + File format not supported. + Формат файла не поддерживается. + + + Could not find any unarchiving executable in PATH (%1). + Не удалось найти ни одного распаковщика в PATH (%1). + + + Unarchiving File + Распаковка файла + + + Unzipping "%1" to "%2". + Раззиповка «%1» в «%2». + + + Command failed. + Сбой команды. + + + Running %1 +in "%2". + + + Running <cmd> in <workingdirectory> + Выполнение %1 +в «%2». + + + + Utils::CheckableMessageBox Do not ask again Больше не спрашивать + + Show Details... + Показать подробности... + + + Hide Details... + Скрыть подробности... + Do not &ask again &Больше не спрашивать @@ -49299,12 +51900,12 @@ The trace data is lost. To set or change a variable, use VARIABLE=VALUE. Existing variables can be referenced in a VALUE with ${OTHER}. To clear a variable, put its name on a line with nothing else on it. -To disable a variable, prefix the line with "#" +To disable a variable, prefix the line with "#". Вводите по одной переменной среды на строку. Для задания или изменения переменной используйте VARIABLE=VALUE. В значениях можно обращаться к другим переменным через ${OTHER}. Для очистки переменной в строке укажите только её имя и больше ничего. -Для отключения переменной, закомментируйте строку символом «#» +Для отключения переменной, закомментируйте строку символом «#». @@ -49482,6 +52083,14 @@ To disable a variable, prefix the line with "#" Cannot create temporary file in %1: %2 Не удалось создать временный файл в %1: %2 + + Overwrite File? + Перезапись файла + + + Overwrite existing file "%1"? + Перезаписать существующий файл «%1»? + Utils::FileWizardPage @@ -49489,6 +52098,10 @@ To disable a variable, prefix the line with "#" Location Размещение + + The default suffix if you do not explicitly specify a file extension is ".%1". + По умолчанию, если не указано явно, используется расширение файлов «.%1». + Utils::HostOsInfo @@ -49497,6 +52110,21 @@ To disable a variable, prefix the line with "#" Не удалось создать контекст OpenGL. + + Utils::InfoBarDisplay + + &Show Details + Показать п&одробности + + + Do Not Show Again + Больше не показывать + + + Close + Закрыть + + Utils::LinearProgressWidget @@ -49925,10 +52553,6 @@ To disable a variable, prefix the line with "#" Utils::WizardPage - - Name: - Имя: - Path: Путь: @@ -49937,6 +52561,10 @@ To disable a variable, prefix the line with "#" Choose the Location Выбор размещения + + File name: + Имя файла: + Utils::fileDeletedPrompt @@ -51587,7 +54215,7 @@ What do you want to do? - VcsBase::VcsOutputFormatter + VcsBase::VcsOutputLineParser &Open "%1" &Открыть «%1» @@ -51661,7 +54289,7 @@ What do you want to do? - WebAssembly::Internal::WebAssemblyToolChainFactory + WebAssembly::Internal::WebAssemblyToolChain Emscripten Compiler Компилятор Emscripten @@ -51849,8 +54477,8 @@ What do you want to do? Программа для UI/UX дизайнеров - Copyright 2008 - 2019 The Qt Company - Copyright 2008 - 2019 The Qt Company + Copyright 2008 - 2020 The Qt Company + Copyright 2008 - 2020 The Qt Company All Rights Reserved From 2c36c737b7b9a114bbd19f207560db5734a6a9ea Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 1 Sep 2020 17:10:36 +0200 Subject: [PATCH 18/33] Doc: Use \MinGW to prevent broken automatically generated links Change-Id: Ib576e3be1035448905cc8c5bf23960450cf10057 Reviewed-by: Paul Wicking --- .../debugger/creator-only/creator-debugger-setup.qdoc | 4 ++-- .../src/debugger/creator-only/creator-debugger.qdoc | 2 +- .../src/howto/creator-only/qtcreator-faq.qdoc | 2 +- .../creator-only/creator-projects-compilers.qdoc | 10 +++++----- doc/qtcreator/src/webassembly/creator-webassembly.qdoc | 2 +- doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc index 75e9c31873f..1cbfac3d04f 100644 --- a/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc +++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger-setup.qdoc @@ -100,7 +100,7 @@ \li GCC, Clang \li LLDB, FSF GDB (experimental) \row - \li Windows/MinGW + \li Windows/\MinGW \li GCC \li GDB \row @@ -173,7 +173,7 @@ \section2 GDB On Windows, use the Python-enabled GDB version that is bundled - with the Qt package or comes with recent versions of MinGW. On + with the Qt package or comes with recent versions of \MinGW. On most Linux distributions, the GDB builds shipped with the system are sufficient. diff --git a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc index e95067dae33..143349d5558 100644 --- a/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc +++ b/doc/qtcreator/src/debugger/creator-only/creator-debugger.qdoc @@ -136,7 +136,7 @@ In general, \key F5 and the \uicontrol {Start Debugging of Startup Project} button are set up in a way to start the operating mode that is commonly used in a given context. So - if the current project is set up as a C++ application using the MinGW + if the current project is set up as a C++ application using the \MinGW toolchain targeting desktop Windows, the GDB engine will be started in Start Internal mode. If the current project is a QML application using C++ plugins, a "mixed" QML/C++ engine will be started, with the C++ parts being diff --git a/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc b/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc index 7b06e117edd..9338321da0d 100644 --- a/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc +++ b/doc/qtcreator/src/howto/creator-only/qtcreator-faq.qdoc @@ -46,7 +46,7 @@ For more information about where the files are located on each supported platform, see \l {Location of Settings Files}. - \b {\QC comes with MinGW, should I use this version with Qt?} + \b {\QC comes with \MinGW, should I use this version with Qt?} Use the version that was built against the Qt version. diff --git a/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc b/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc index 554d3441121..e3e022cbca0 100644 --- a/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc +++ b/doc/qtcreator/src/projects/creator-only/creator-projects-compilers.qdoc @@ -57,9 +57,9 @@ \li GNU Compiler Collection (GCC) is a compiler for Linux and \macos. - \li MinGW (Minimalist GNU for Windows) is a native software port of GCC + \li \MinGW (Minimalist GNU for Windows) is a native software port of GCC and GNU Binutils for use in the development of native Microsoft - Windows applications on Windows. MinGW is + Windows applications on Windows. \MinGW is distributed together with \QC and Qt installers for Windows. \li ICC (Intel C++ Compiler) is a group of C and C++ compilers. @@ -114,7 +114,7 @@ \section1 Specifying Compiler Settings - To build an application using GCC, MinGW, Clang, or QCC, specify the path + To build an application using GCC, \MinGW, Clang, or QCC, specify the path to the directory where the compiler is located and select the application binary interface (ABI) version from the list of available versions. You can also create a custom ABI definition. @@ -215,7 +215,7 @@ see \l{Using Custom Output Parsers}. \endlist - \section1 Troubleshooting MinGW Compilation Errors + \section1 Troubleshooting \MinGW Compilation Errors If error messages displayed in the \uicontrol {Compile Output} pane contain paths where slashes are missing (for example, \c {C:QtSDK}), @@ -228,7 +228,7 @@ \endcode If these commands show paths, they have been added to the global PATH - variable during the installation of a tool chain based on Cygwin or MinGW, + variable during the installation of a tool chain based on Cygwin or \MinGW, even though this is against Windows conventions. To keep working with the third-party tool chain, create a new shell link diff --git a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc index 811cb32d1e3..8e5c88246bb 100644 --- a/doc/qtcreator/src/webassembly/creator-webassembly.qdoc +++ b/doc/qtcreator/src/webassembly/creator-webassembly.qdoc @@ -52,7 +52,7 @@ \list \li Qt for WebAssembly 5.13.1, or later - \li On Windows: \l{http://wiki.qt.io/MinGW}{MinGW} 7.3.0, or later + \li On Windows: \l{http://wiki.qt.io/MinGW}{\MinGW} 7.3.0, or later \li \l{https://emscripten.org/docs/introducing_emscripten/index.html} {emscripten} tool chain for compiling to WebAssembly \li \c sed stream editor diff --git a/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc b/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc index 7c247d457ef..9ceeef0e255 100644 --- a/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc +++ b/doc/qtcreator/src/widgets/qtdesigner-plugins.qdoc @@ -137,7 +137,7 @@ The \QC that is included in pre-built Qt packages on Windows is built with the Microsoft Visual Studio compiler, whereas the version of Qt shipped for - building applications is configured and built to use the MinGW/g++ compiler. + building applications is configured and built to use the \MinGW/g++ compiler. Plugins built by using this version of Qt cannot be loaded by \QC because the build-keys do not match. The plugins can only be used in the standalone version of \QD. Choose \uicontrol Help > \uicontrol {About \QC} to check the @@ -145,7 +145,7 @@ To use \QD plugins that were built for the shipped Qt version, make sure that \QC is built with the same compiler by either recompiling \QC using - MinGW or recompiling Qt with Microsoft Visual Studio, depending on which + \MinGW or recompiling Qt with Microsoft Visual Studio, depending on which configuration you want to use for your applications. */ From ed4704e0b4d14dd824327f1346f1f98052d66a9f Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 1 Sep 2020 16:50:44 +0200 Subject: [PATCH 19/33] Doc: Describe creating custom effects and materials MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ...using Qt Quick 3D custom shader utilities and commands Fixes: QDS-2613 Change-Id: I5807c1617d2b54b3fba183c1278ec1266f899c70 Reviewed-by: Tomi Korpipää Reviewed-by: Johanna Vanhatapio Reviewed-by: Mahmoud Badri --- doc/qtcreator/src/qtcreator-toc.qdoc | 1 + ...dio-qtquick-3d-custom-effect-navigator.png | Bin 0 -> 7395 bytes .../studio-qtquick-3d-custom-effect.png | Bin 0 -> 6787 bytes ...o-qtquick-3d-custom-material-navigator.png | Bin 0 -> 10713 bytes .../studio-qtquick-3d-custom-material.png | Bin 0 -> 27897 bytes .../images/studio-qtquick-3d-pass.png | Bin 0 -> 10916 bytes .../images/studio-qtquick-3d-shader-info.png | Bin 0 -> 10355 bytes .../studio-qtquick-3d-shader-properties.png | Bin 0 -> 10855 bytes .../studio-qtquick-3d-shader-utilities.png | Bin 0 -> 11054 bytes .../src/qtdesignstudio-toc.qdoc | 1 + .../qtdesignstudio-3d-components.qdoc | 8 +- ...ignstudio-3d-custom-effects-materials.qdoc | 163 ++++++++++++++++++ .../qtdesignstudio-3d-custom-shaders.qdoc | 2 +- .../qtdesignstudio-3d-effects.qdoc | 3 + .../qtdesignstudio-3d-lights.qdoc | 2 +- .../qtdesignstudio-3d-materials-shaders.qdoc | 31 +--- 16 files changed, 180 insertions(+), 31 deletions(-) create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-custom-effect-navigator.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-custom-effect.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-custom-material-navigator.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-custom-material.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-pass.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-shader-info.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-shader-properties.png create mode 100644 doc/qtdesignstudio/images/studio-qtquick-3d-shader-utilities.png create mode 100644 doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-effects-materials.qdoc diff --git a/doc/qtcreator/src/qtcreator-toc.qdoc b/doc/qtcreator/src/qtcreator-toc.qdoc index 269d6c7a122..8b3f1efa241 100644 --- a/doc/qtcreator/src/qtcreator-toc.qdoc +++ b/doc/qtcreator/src/qtcreator-toc.qdoc @@ -139,6 +139,7 @@ \li \l{Using 3D Materials} \li \l{Applying 3D Effects} \li \l{Using Custom Shaders} + \li \l{Creating Custom Effects and Materials} \li \l{Using Lights} \li \l{Using Scene Camera} \li \l{Setting Scene Environment} diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-custom-effect-navigator.png b/doc/qtdesignstudio/images/studio-qtquick-3d-custom-effect-navigator.png new file mode 100644 index 0000000000000000000000000000000000000000..be1814c66ec06dd48c1fc68f8e7d7286f6705053 GIT binary patch literal 7395 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 KKbLh*2~7Y&Q4DAR literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-custom-effect.png b/doc/qtdesignstudio/images/studio-qtquick-3d-custom-effect.png new file mode 100644 index 0000000000000000000000000000000000000000..c430657dae443dfe02574df07059ff74a5b3a53a GIT binary patch literal 6787 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 Y*RP!6DB%5-fq{X+)78&qol`;+0LW%{+5i9m literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-custom-material-navigator.png b/doc/qtdesignstudio/images/studio-qtquick-3d-custom-material-navigator.png new file mode 100644 index 0000000000000000000000000000000000000000..43131421afedb0789320acc15b01f990c07e4f91 GIT binary patch literal 10713 zcmeAS@N?(olHy`uVBq!ia0y~yVC-jLV2t8mVqjp%EaktaqI2epOa;- zHa=Hpy1ChK^JcU5j{-XG2|A5O?z+WHN>FKuF)}jWvSXrZK%yR}Kz0dZ+a#7<=cnyj znzypVoH=6B-2_Q-w>iRlzi2oK-g`no;h`D{@lq%Wp`3VxR%a5?SH)Q^QpJn@7tM}m{?f+c)R_6-Os1f z=huF_8K0=l)!MXngJ`SM!LS=$PMIz<>yG!7zP|RJYg6LmV;_ar9RLeY`}8>^>-o94 z*Zub>Zuxud_P>W89@hEC#m3%V{M;*@-{wccLhbW)KOTDJnC|#-WaYen2mfTfKY8?C z(ZoyDo1PyD@Ll@ZJo?|uK7N1kTh^~n{67*V;?>*rD!}}1jd#iK+V6M&UutT-_v+hQ z>m>j9Z8<-?_4kR~-IsNB_x@Sd+l8Wezt)s{ExjE1*1ohR!JyOEYEqT^b^Duv(>6@2 z`&<9~|IheEx3AZJ&*$g=qo3otP(*)o+TWn1KMc3~&%bxm(t1nb>1k`jS1x%aibZG0{)?&1P306h0g4X1w|Hk(WpJ9!qu460)2Ad%DW1Lt!FbD^9ro{`PkI zY$xfbb0fM%H%<+Xzr3^je(`#}iknX#yVrb4KHismZ_m=G?<}#iXE0sz5AFEXZuM8| z(u1VkW+Gd9&TWmZyuZ_Q{S4vS=+cU}zOStgUn??-Uis(p{{R2yF8?S0okeqsQP&z3 z^UA9lGd))SHzql zzb;!p{aN>YhVaszUa!Mu|ND7g{{NHu)p??~U-qrln9_1+Qj*D`1?%&-AJYg?TCB2d z(yBdd2_6xl8>XgCewesDuT(2O^Vhj+U3<$TSftvFE`BKdEwP_jyJ*po5}W&{*FAol znteLpM4M~KQ&Wb?9NphlTZN*pyk63`O7`yE^1HSEACPRp$sVUII$CiDxbU)o&1O4Z3XIxn3{o%au9ttzK4t*F;TmZ7Y0vN6G0* z#*enMdrtOm-*n8MH|+bV^fKOMcE99Vr*8Q@f1_w?(C$U6CaYb@_~W=@#dVvq3(TKc zW~zHE>^TI^)L_EtV3-Kk(%4gN`Nwj8RGq1sy8hUj-$iF`=^tD3Qzkl4W6HFxS1TD9 z&K|jc`$X8}{JpuCrrge(S@Zhr5o@+ZT7MV`Do!z6Rk zytZ|V=SS(iJZZ5@hv^X0iq&gNzWAEoUBbV)CA3p&(Yl!yg-NQ1R$U02*Yx%FODp@| zH_v<38l4l?a1#B$n_;4;b?JQZIm_jf?#*<1{%X_p`1;z)L#vL2ZNF30y*%N) z)iPV*f8now#+S`>irqeA)vH&pW*Hwt8~+vzXbe++r5{Pb_ln{_;C$HOOyYRt6tUe}8Z9 zE5ZMcjCDT_%d2gi%BNk@+SkWt+p@}1IZnMq{o)oM&+R&;J?B2P2yL3TEqmvZtciSO zvnD?}V|;#z7wd(FX$enjA97mvPcnJoR4!zDI;7(Crcc$~&n0c&eObe7ax84CaM;RK zU3QYCJeFlEKG-?v<}AH`?)B`&t5^fnqg!PH*FI1DRy_R`>+_Qt6;s|69Og9#8S!e{ zrT_1R{cRqWo;*9(T0D{Q%E_?jQ?LGw`Qtg`@14{Y2Q!7N?tYG1cf>SwqXzn(@kci1H^OamyopX@)lEx~g zjE1$dcqic!S-?q!w{rGfR|GE8gxox}t|NA|) zrE-IYl|%bSd9JrThptRHy)EnNs&nVgtqfkCRkqhIWY)obwZF?+k7v#Nzv$L2FFvao z5-qH`r~mx?{Qb?%;`6rOUCLJ`eLcjjzhYbIaoO@I9|iY*x#V4+w3u~m((0ydQX9iW zS0%EppMNSP*63x(s<{2rzHZ30vk&lpc6N4nj9ZrCyIWgduUfrM>tygM#x-$!Z~d&v zbX=YLddVuy(rLTUG%y@+-)l)BW(~=ABi`TFBe;;L;ape4xSMj#CwwrFZ zipTwUGTDFDwxB7C%}&)?J(!t3FLSk8;@jM(S0-(`IplbP85j;hP^>waaP^tk`0 zrRS^};$8UB_CH(CQ%R4+k2V`E9>U*cVj%?aj^V91{bl z)wfo}{<@bh>vngQnXY5L;jMPLdrBvF$i^&t!gcG^KGuwTg(k1Uw)|h9xI${_!|-R* zp6q?|%OtMkqHEXNu=Zced}pVfowc<0@v+{^O<~*f?yicpT5$Ir&$TL+=FDz~^TB%A z-{$^~Hd>cbkFORw=4+Fy|T_s=7@ooTl=rM!C(9w53e}-BA`}Bf8UR!mnSHiqmDI8MiPz*|dG_+B+9t z9@*>A?VwkkeS1~MexK;0kK1;pU#?q`5$Mt0sMZwot!&fO#X82piZeFMJ5}MGnO(PF z<}DyY9HspPaPj$|G$57fH^Q~;VsKaUp zz26!erhf}N9?^_ia zB2~9&r{A-=j(5L2{n`-LF37VsOWSwqEaUXPXJzZ6xBG2f{^+s9y_(Oyar_yXCsOkh zqcv5P!+d^iUVQ!i+U@r)#VfXUW$t-jdOg;>?oUM=e@5(yRC(2HLA4ccZ*Aq$3a*>+ zYn4dUvY#(huU$5Zw0AYhJgb-c@agBJe^!*6mx(NhnsEBwt!+ViU+0$Jvn+gcWYrlK zowNE~_UCSF3fl5}!}N<23Z3q)-Sa)B^AocMYtc>Vd~MdXdEE-Nv(l6aB+Ht}wz5Sx- z6{ez_vsdJa3WX_#ioV?5rCQ=|FkzGW`U?Bzmv7Q`tdLfI6@7B0d+Ogm+V{i$ePvw5 zvh&T^8$w@NLR~^dZ)pi^dR`OR61Mo|o1gV->o-M)C#-w+#!hSN&qHF}>lj1$cE0hw zmH)NH_v7mD6z%KIFW1C(c6q0lf4eQUS)4ikm8d}UjyzXyfh@+IZ+z2NtAwO!AJXa9(~O(5b>g$w{M3rtYzN$<_6b-R0VMA<~fs<7aINYz2^(HJjE}&vh+08von|+ z3j^f{h7F>S`pMu{&QiHw`;NRwi1TL1xhgS7`T(b7;W7<}+5{G7>szaqY>cv+aa~A? z4`gz*Be#Q|^|mazXvvN5IGgW!pP$rztu>}B=c>&%qoljRD_bn%jU&b=aAbaP{9gpYOkyDPra&^%FSKl!CUUKkB+2%aapC{BehQ>^*34I-=Y+wA}x_-e#P%*J) z*VKJ~Zd$)tIz8@^+g&}*Zq@lG-<7jI{gk_7qv6AMALsuJV5l*;b~pP)tB%OoN&F#i zgX&^x6!Pt6t`)K^{=VHk@+&ANM3c371-|c+9hf93ESccA%P06bzqF=Ukgs)E0 zu{Pmgw%hvf9*IBG10fSnbqlD0ORfw64^aMN#IRh732l zOzapAz)}nY!#1r}@%WlR=IC`h9&yFlFyvf~**0kgsBM++vcmZI-rc*S%UeySHcl6q z#pPzOW${{(eGhMXT|R5t8*D5+r@Yx%&@toClxJn1w45e8=vB|Y98?(^*X8mWnE zY!9BgIC)dj7rP77Zs+axt=~7Ncb4X=gNyb|yAW|AH9tPu(m3D5(tNJp>!a6vp56cV zZF}FmDLWTRM9OY1c<7Ygedg$LRw?eCZ{Fr<=SwY6s@qcd?99wnA=c7UL(87eEl<+U z@H>&3pBt^Yq%@i(SLR|E-z=R~Z@I;E3c^G`E{-Z^jJ~QgT~Tw%W4_=339J|ACtglp$+<{q^0pp% z`?$|@)cxn3dCh*7ZS$<#x5D^#F>lJbX{6uDh*p6xFyw?LPciuXYaMLHTNG^S>RkI$ccWUyfa3DVJTTuc1>gGem9neBrrk zRUWRIbop;_uw-#j>B8)=A0Z2wK)EROn{37X4r8V4>+5t^aGB3s_=Ts<;gQczLB4;% z9PT%kxLMf!o9S>DWV)*B-B(rVJu6npT9>srb-X!WV|V55+1Y_v)u;Z?^snMyzHRo! z_hEO=6zIu6c|J#CHm^KaGyn3F;@hT{pZ)XmTI(nNHIsX@+2(OxVFi^TCtv(scxTh2 zZ9z+Nc6`5kB7^^l!t3QL9x6Yr1ZD-E?-XuH(9;HS3n#OMR}}S}%4bW?P!YMSfN2PT6K; z9JIGhep{9aD1#SWcpc>tTE+e%fBL>XapsYyRz$b*3cO@FKP7IvQPo%DlR2sPnM|ZB zKTbS*V-+LF3NPo!tG50o0geG6?zf-^%eRRpT_C@#aX7%eU zzHf**;*xe(>;B&P>vd;tlaf34^kmwzs_P}@Y22)5q|dWtaqfI`W0lgn-S2k2FbI6^ z{YqRf=Ea&<-+Wj9tE&4hdB5sL1t=m#7w+0F{OH{RJ?6iYgw_2@c8MODWtyFIKW=T3 z_Vcp&H}&~>TVl#`LItJ%y!6Ql>)*|E_qf#kWs9pySJ(e-F?8r|iwi!mCM_q_?!5i~ zJ!`(aSlquV^hM6a4OXsuUfV7SEZf7(utAgoG$fGI3h$R42xFKa<7SYs`qG7xRbN>z zB&@!0Q0mTs-wdmmK(0=irWYHPVYIoebC!G7io!`HCJln1w&7IgiBlxbc75Qxyq)*m zy}i-WKbJT@1qIuwgM|S)tCm_HU$O38PT+Z_`6er@KoQ`gv3%o%wfCxC>&h<3aWk$r zE2&a&uvOE(dpdaga*_5=H=SRn&8q$qWFQ4HKJ<8)SNw(Yv+b8QHLv4RU2{BjY4y$L zhYyN;xv{5A|Ez75rbH~rwpBUWN8gKX4)rlASh(hk$G2FM^|o`YUH6>MXafb+-)ReG zUYFYx8liu5)1|}Px}I%q|2)xodecP?kl$FeUZwW)I><}Uo+=l-o$LDPqQ1Q~RJve8uMPZt;dn)~&5m%kLKDRX0$jMuD6 zVJQ*j0JA5XlC>MA!CIb>CIqPQ8J(yNttS?IG-zUs4((DqzW)A(Kv(WPuL6|8(QlY| zsHK%V{@;`SfPt(1}c zar2eHrE8A1>a#~T>F;0Ddn@#UWMj;?o@m!1rE9WA{1BfcGQCU@#lWO+YiT7|*uEpkR&1+!` zdG=+)V zIN6GC?hXC>rFv!2&x)@;RwZ4x_1~38R>nrA?GM+xuryEmY-hIoxBZ(pBim(Cme`&vT3ET=|68|L*iSw6qJztueR|nf zskB|we_v497tRSPq4!okof*Db3NZuMQ*OlE7m@-;nrnuI^JeqKlrf9%h&ks+a7b{OSbQgo_|cbd`EZs z(qPTUnl0-Z)~;d)Wj(`fpYA2PzT;`j4SnrXem;C=!`eMw5gSd)l|Pvju;zr?f}GWx z$*HDzMQBawvfXzVPxXvGawDt7q&(fSiZv%R7o?!{(CbuxrybMx9-H~@;_I8<3uk<1 z`n6?x^16n#S)i8wD!F=z$+xwPnid|L`EJ_&PxmLyGOpTL^mA9pMU(RVd7^umwyhEZ z#V^}~UOrvE#m)yo1?*LZ8I{aW9YJ}C;Y?QBCr|`u@u(bw_not@7^gknF2c2RCyw#i zL~SnC=&hU9p1c3aRqgk~#^!dj_tpPz-b-~ak?cdz`L&6lOCzsbk# zd0u{b_x~^RD-I{Dj=J&cy;<#Fzi-a&K6iifzh3)oZ|}9}w`b1A+g|=%t?pEE^d7&U zm}*Gf#af%{4;N|gfoN6DRS=g;5%bo57V{m$*rC+q&cAAWRBl;yTn`_}%ey1dX8{ccZSLq73DzCd!{@}vd+r<}S zS4F(syXF0Zh1%QyE`6fC-q!HhUHksX$~#(77qqq=3hP^Y?$)2H-{1USyx(w@-}bjZ zLPA&l+`HdC`*L_xXlQoS_vO~#zWcw(x)Oi-;8Ary-FNa|wtt!T=Hj$_r}VO8Q&zOR z6a|5is!p0%cjn&__d=j z?|J8CTdluS?Y!I>yJe4usZP`0{cqAMyS%)>xwUuq@yp%%S-41h&A&I7%Imj({BZH= z&F}FsyOYl^{2m$?bA4~xd;2_#l91gc4BMnyw*^_e*~W28B3rxE@PyYY&%5{js&9UM z<#m$y`?r4=1gu@PxZGpwym`Xv*41nIcSiq}d?Qm(V|e3YerVGiW-B&7d3n3swR}8n z=eNojZmCFEQGDR$B>Rhd7pN{cs_wUYs%G}q;se`4-!G``T4(uWh58qbtz-*5FB zW&C|3Uo!o0_<=B0(Z4IJYtIY5&hxo{Q9kG2E$#oQm#@DHosj3Y@5Cy5-`hVf&a1aE z%6<7vd)|2&%c?87$JK1+@2tH!?G3y8vb-N2?TM=cBervKYKMjPtt~M>9(ZXUbNdwr zo6A`eb&o^V&nw$~LpFrlI{owXhgKa~hDP4&-?sh>KFq+eWxEB&9uCM)c{ra&zNlN`fQ5#~+u3UT_ty#mG zGj+|J{ZCI%FO%0ck&Lrlcs=KL&ih7Z<(Txd&o^(Ee`)pQ;?MKzY#u+2{l4yQ`i)mF zY_q@3-B|FvzP4;B--|cD=JFj2Tf9N_1?TDst7M{A?pnvSC#vS&>>Sr`%=^1*Z+C9L zd%M-|u)&A>uU@~r-L!4f9s`NXZpP={mT39zQ~tDEy4_O!nSXiT_ng$L51!0wY*@R; z{bOI`8_SEv6F+t|YA38td3tDV{GLs}JHCGl*uIPBspws?DQmYBw!B_rV^{rm-#X^^ z@f%XU&)ELoAThH)Q+sV+oQ8>^-)+Mj!R)Ber(jQ1XQ+AXw|<$BG! zTbH*yz5T7OAmvvZ|M`l{<7<|_{>}Go^_`t1d&8FJ|8Us7Oz-xp!z-e9lF={Firw()54d5>EfKz1F_6@awU^@@sDXzxZT(*}T73J{8Z4 zTF1IJ@5cYevX>2Il4l#%a^3X0`+QZ<%I;S_)grsC)|yytsjlD9eOK1>^WPT-n06js zw^QexdDz$D8`pYO#k1E(Z{KvJ#OD70w{xql9(5ercFSVP<~jSy7U!jg&s{US?PqLZ z|D&=+$FHw#3O^7QDt)lP;w1-LtWh*ouhbs!l#A@%b>n$t?3;F*^vqAaZfPF{mtH9=S)mo_%{Tw!nOnwk)rYmB zB8qmrW$Q>E@v~OzI+rJlP8!WWG94EfJZS#L!<9v-m{#>&x$w5bN#>T{rB|zbLAWT-~J2P%sNxWBQeZ)Th^i@5`PV^t09uZ$`By`LyVIFGU%|t^5N{K8$-Q~o`>(hwKMzrf#dU6 zWH_$=GruQKuKv%*z182>MQvTRd2{irD=W?K6g1m~6hA+AcVBIFc=+^bKlKlVo&CXH zc6-~px7NGlD;_lZ|DO|lu_a3|_lT_ekAzv*Z!GPeqB=WY6VXZ@kls z5ATdw*TSwl@lxI5YsvTaR31%TBKBxq?Cy2DUagvBQ~Lk!_w{jmZ_Nx|$hvmh+RYn6 zeWe;!xt;W#x7;Q@b8(q!me4Yzos)8=zQ~Z&oUBzDuF9e}J8Sv&gFTYQa@B7Pi@W3g zo}F#JnrqsV63xs@OFX&y?`%jsyvVit+pUbm$H#hat%$W^h)!JX6(~OSR&CnaQ!&@{ zWCgP4ghXxSPrP2Q^FL({@6Z0~g8kJ&b+h9&i?&r9&j@|~dimCarR`e{bK_$Am(7}5 zKJRzHyU;V;Kb~jlidJknVf;mJcB$WakzExJPHwTT9A3|z3TUSvqE0=UdcOjDD0|x?W>LRK20li$a(9b zc2YQEdeSGgQ}4f;NgRLjI_%uE3r$bEx6}rn54+eMz57zD+^szwJIgIx=g(N98)T(EqPqzMObhZ_kHA>ho(ZZJBx~e{0~o z%Z%r3KKn$Qa&8PYzNt0)e@y$WGPmqg{{qr|4liMHU%q$U!YS|d?=!TmJtS@}r?M*} z?nr!JZP&qciHdjM9=htsEq<19H{fXc&reV1%?n|EWqcvm@$dbNTYzK7U$| zm6es=&L=`wulPh~hDw*NcVl0%+=o3`J16x2v<0(V!m2gyUzYvL^IHCDu+Any!KdQ7 zPjB+BUvqt(*4?mYlB?`m=lK{$yUt6z5_VMo-m7gz7jCqQYKNT&Tfg^PR7UuuX$$PS zR@tuPt$1*tv0bj}MH9E)4BP5&a?-p#7gm{NUB6p?f9>HF(TS_OR&1GmH`|ca{;=V+ zj@8kv_U}s9L?3;7F-ZFA+NQe`GY6u%gZ7+r)56g zQTTYvf~#wzw`Wb~%h+z+d}Ec`6yv6Yt7cgIed_uu?5Etl|8tCe@Rr$^ZE7vV$1J-y;uEy<+8FD z7Zi0fLZ!E^=4CfbSUu~&iwkB;#1=b$-MHt+qwb~4_iu;H@n~#Yl{IV`RJvGr+KTYY`*pW3 z0(I7J9Sd_~E0|bOYCmWFlYnn)COhYtvhWtq^nA6j;zvQ0jR@E#HQj>_r>Z7ad@cA; z$hq*%y0v@UVtpo68OYgf;!<`3waO(=y-DT2wzliYYVnoPs$8l4cje!%W7dpn{L zG}f*(#kfgvL37f_S8kK4A{V|4X<$3d!IpD%l7ZD0@JQO$C-M<#_qIqs*_6C`+LC=c-;^b- zu+_E9R(-F^msNgV?`4Jt3pkvm8@8TLHD?mNbo1ew`N3~~sE1El+Y!Ek5u{OU!5))+ zA!<{W#p$Hn?P`-eXSuN2aMMP!R3^oD8(+R!dUTg_5IEwTD?N|91?^fppGEQYPnM+g z-9MK`UljQ6@vrLT#&-rrAhWh@n0jBKSgKOFea-BPRnv;El$*wA9J%{>>g@e-Rcow! zctEbvjcS@Fz30Z)iB8v&_X!xpYj^d!@;zHWUG6oXCpi9jQonDyon~0n)7`ozTlHR8 zoYqq$0f%MwA1$m-p;`J@B z$-05YPryON3pTV2oP1fqz2&K^u40{w1Pw|Z2xH)F19gX06H797gZp16?Khm+lL<+^ zo|T(tT@G^yUAL$6h|6Yk8BqV$+l=9~S5IgE8ZVZMZ_cuV{K%?dKHXM+YhLTt8I3Or zC%*dW+g0SBK4(VRqMNhXL3&OHq+KdB$-2wy!tcK7Hn(PRW5%~Hf-`XIFaMgv=a-yCYD+_M-WPDQtCp@Vs zrcDby?rMpw%qv&3d}6(!BQ4(s6lT+wY+LO7_nvCXB^PMIic~y|}UU|*TJenr;t3czvoY=Z&linf9#FIYz2}0hqtV4^X|MwmN;IZ`v&u(br?h(xP9QTF)`qC2 hV-BlSM*n4Bv+IoduDNHz85kHCJYD@<);T3K0RWgbnBV{a literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-custom-material.png b/doc/qtdesignstudio/images/studio-qtquick-3d-custom-material.png new file mode 100644 index 0000000000000000000000000000000000000000..a6499d990dedd9e08f9d827ceb052a0d9efc4ea2 GIT binary patch literal 27897 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 B`Huhq literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-pass.png b/doc/qtdesignstudio/images/studio-qtquick-3d-pass.png new file mode 100644 index 0000000000000000000000000000000000000000..572ff78a086480d8b267ccae61d68179852c28ff GIT binary patch literal 10916 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/images/studio-qtquick-3d-shader-info.png b/doc/qtdesignstudio/images/studio-qtquick-3d-shader-info.png new file mode 100644 index 0000000000000000000000000000000000000000..7e1667f16d6d63f2984ec55a2b4f3e43a4a07aeb GIT binary patch literal 10355 zcmeAS@N?(olHy`uVBq!ia0y~yU_8#iz;K*{iGhLP@k{y@%lAFMSFRf}BRecvdh?A%I;~woUQSb%D5ZK&6jIDQDERUOr>Lms>Mfa~ zk;na>glu^^=d$I>Gw)}$YRsKBxmbSB{QgRtcaiIMroB6}=Ulqob<^U%eM}4t^E(?C zK79X#f#HF%V<;m-Kqv!4h$sU?C@Vul{LWR6dlq@gef#_((RX`-ookr6*DKNSXpHOE%vw|qT3$xA9(KylqGPySDf_di-=t9w^Jd)v$tr%zst-7Mc#w?}4y zY1BQNg*&5Fgi80nsruOU=f2)Uzt5dTI?J2O<4Vd)w{0)CdoNa7uIrI6^G}1pU{4xD z)!|F zn&Cjf>Q~2KhldskUz@h-dF<8OZ*2SQL~PGRADZ+!{%YsuZ(F){MNe9*8k)O*lfGV@ zlAhkBnf7e;q6`k9zr#cOl6J56{j%oIlb_ai?eB6t>VLO3D?4t*a(9QIi^3CMy!;tD zi)Z>9_C@c$9cpnnFFH><{P)`EJjcWGtPBC6n^rwcJ@4x8S9PLnWs<(_$A~Mwd2_1* zH{T8UG;?2i_S7rg?crv#HBX+@eDQnkpKab{so%SQ-|U|GV=)86Dz9@(Px%J~1%*i5 zF0Nc-bF`xPWbwuAnPnn7uZQOP77Jy3v^>+9{9B}w$+`LX<&dSCr;@!z85XR1zv$J> z{~^2Bv*)k!dLGKi(3TsjJDoo$v~y?tU4gLqTo)$h)=K4X{2EpJb?J+lE3_DRp0Cp5 zII?~<1H*z<3=I3vuA20DmBl$8h6B%S@%(4V1D}Pf8dfnafDkLRK#WBY zj)BSQQ&-JQ=2=}$>Dp)J?_G1V;vSd&^_jcme|DK|ihlRjEc!q5^lOhkZT)$t{QkP^ zmvSOoYpbWspKF)I=)84Rh}2}&qf-(uaF}Gw2%lOv*w%z^v^6xxf zbl8x4@2!#>kCU_0q)PT_UeCVNuDj-O*@B%lzjM}>-&ym1USM>6-uu28Ya994I#_wm zuDX*w7M^*+tGBG?rIqcrW9-%v{^hr4$UHXuSsJ>0XKOC^rvmOf z6RR}R|NG@@%ksIOFLXZj^3}5Jb|WLBNj2$3J10M9Kl0AHNTb zHtbmS>WQWA?9xJM@ee82x!*KzXS*@WGXIv?o}81ner$1ezoZn)Gh;zmb7G_2$`BL9sP03*FSpo$6vD5thEc>8$DHe`@P%AGvl2eZV!#W`Oz}!S@*TI zpTB;I*mR<_^wQa7n_n;MoPK5A{?(6eFS_y|bscwX*pb+&VNz-q4aI;{en*FiE=d$L--#Rl1E9EnS+u z)#_nHp!4s^%lTiQ%PBT}b}Efwn&)xT{3=) zUy(1E7B<<|eCaxqEUl?&VzDKak5f+8FfNp?*k^RIt+R}GX)VJN`KMo(|CY<#Io*5O z`uxzX;_tH8+;9x@tv+@tR=rzmRqNHQU)R3fS{-}hnQz?G>m`a6S^q0TYx{i`ez=sm z(s+7HsiijW(a^mYFQu<5JFx20+;7*!T>ajMhccgk^Q+i#*{0_idpB>=JKES^0}ANY zM9Jtt(fp%JR@`{EQulV2+u|>4wXUixT4HvyZRxW)VS#}Y)Jyj)SY&nCSNN?|QK)FY zx9z4^>s!yi2@h@jZ0;LcSiECdHutP^?PnfjXBJkN-R{y#4Yj>jrF&*ieJF4Evyl1R zv-3@>`&zb6oyqwA@TybM6N3ETNgQ|^ef8w(K2xzZlh6JsO3&9{?_YY!%`V|Y*wjPY zy!G~PIyog(u6XsQ)i}D({6j7)+QlUkRNyeR_E4oI3`e-|pRdFZ^om(yzZ`mLy*~=^cFfw)ML! zp;x!q?5R&)&irkA)56$LuKU{WzunzEH@98f+wN-i@A=hNDz|$^#D(3xb#an>j@nGe zr#c>5x$hP3hpDP=KjmG_td=}~jiL$j0nrzd5;J{F=Po+_dS~1EzrU*eqik|z8=o{y zbGU!w$_rU zam}>T!aQFho;+&W=lxo0mf!5OCGBVbgEGW~_>HfAFV$*tYuoy8hx&Y{iM^rxyIyjY zly0%qy0Y*4;*F+1A8l{3;=X@EYSrge3@ctGgnZR~bx!io=DJ-|u7{Qey3Yy-WeE8y zyn5BUFTO`zi{@*+RF$0{9QtyF)+(-sRdv52L_rEfLs>&a142O<)GkYCaYk;WwLZ)j zI$+Sc>d^l+tGpNvpZmSqD>?h6^vuX}^HLLSI&c4%{=PzM!72v%xX@+a_VBW=H@C0) z_U7f`-?@|IGpfHmo_zbdvH7jn27#dtp^SEmR=t|G@MrnH-SKnw-OJSKziI5CDj_5M zyqCTEec85W`CCGi1HcNGteW-t(fZIQKm1eq@Ax_;r+w(0c5ar4x-Q6>4g8X;g^pCS zEh=GtzgV~Y^L2@f>+LR2c)IFWBDeALrDoGw zr1!2)%xM=%Jp1xU$A$oX@2!s2{6#s}Tz*D;wMkz0{Nf|q&k-J%IaX*n`@UVP8*;_7 zEZU3ZyRo|9Xuh_)Q%?M4kT(WhFyX5}WtA06#X9ctG zEnwQ;^lA&M?f^kvGohk4eysbx zVM0%6X3gw|A3bw~)%(((+*xzlDYQL5bY;!$13$jJxpQaD-ol6TE?-p%wH4Y?Qd^Vt zY+>z1@7|-O!Ox=fxV!v(&Yn4GIYYo;w)2-Q9ocW?r_U??bL8TeIg579TeXQtd|kh< z=Y8?#`G=Q#dB5GEdF%M3)%N-dW@iE)mxi)_W;z^hd8^t@Wm)>W-WZ!!&wDpd**}a( ztxc@*@;Y^HDch50Et1-c%HG>g*=m03Zp&Jm1Gm1+HFI5GSROxrLY;+n<=($3%+l*u ztl!)x=f_!kVd1{VCpWLHN#5Mm+WOMdvvarEjp8X4#WhWL&#J1*KM-WEm}jtMmDh&l zJC4R>{Pt84vbEdl)$aD?)y!Da{vBZxjpDx=hlgJOzvs)3l|H9sm*!rdR5SPatsA>s z;$1+2GIQJR)vx>8cIg)sM7(&n_gwb0T{~9grbb@0>lU}ry*aTob!L)2_Js<=oYsc7EH6bHws?YOK{t6e(Kx%V*2(wM*yvM+IJ7 zw^Qp8-#Xo#wc=)`arQ#5UHzth3k$uye!<#rXWmVC$~|}5u{qh=_tP9xUqn_fopMd) z=8L^mTbG{|ncec~*`M5bd}W{a3a>X4%`;HC7d89et<&FM`@M_We&y!T{QR4f-KXx{ z*!ZsR+&;~v_v5&(giC!mY0Ue)@|Y-Be{S5{$D6Yz?v(oJbMETh#=Wgb*2 zB{?r&WwO_`^ZKpbE=G6t>#M%qn*2yt%%reP{pa)R&#JiCR<81Sy~OHa-%FD-3_Sl= zafQtlOWT#T$CA0g;g0yn3Fn?B#O~`~@c!(T%!jS6);cFwT}W5G#<_jA@ZU6sj+N1Q zB5e{LZWX6)WuFUGi@K~Tn{%opusWN~LH$F})Y!8`uad9QTy@q} zy~K}c$uG-vr{#K`E&aIaeuQ-7)qCn|+}9a+mreFdNDMyzHQ%=K)Bj!dj=r;;&!4po zmHi>eUNg_2<=85g+b906KD7J1>!gjV_IGZ}NQ2cG|sDP@>Ey(JpY#`_d~BX z$`>AZ&gq;NH`Vf_rP}_Lruk19l!MkDeJMKq(3y@fi`{A>LOEBr%!;1ft5Lgp)y5|UcRlmxttoVyoqtv3+@k+6p_bZx=JVq; z_clMOSz zwuj!e-qxc(@0e;yP2kmu8~GXTW~B!vt}sk(SS2*snM-@p+aaz6fQ)2+Xc)`qrh zb5HwwxNllp+p}kpY|hkOA|J1$9R7E2mD;sw zZZm^AG#$m?-(Ro2GcxLWM08l~_rlm$PNk};`+gt%)&ACY{p458lWG}EWQ4qLTSv7l z1+@*l`hRslkGOv$`t{z>y^))vXW4zcm3KEgUvOHeY5ASKGMOi(dw<;*J#A@yL z-TvlqEE)oPt_zJaYNx4PKX(1vvke{hs=r4|?_909I9>G=%ii+sm+hY4|N4Ye%>BUi6wi5_ zQ@sN2{p?`2_y6%Wd}`v0t?Ifd&#de1T2F24)Z0`4KITKnHT??zhvf_bp?~-odS-0Y zI(_5!f(?te8eBZxbou@7A1ux3FDDoM{WtlS@;duikObo&0~pax55tDwbtuhdUIZ)2vfjoNK@ zqyDJU?o6g@>DE#VtGZS#TGg;NbiVMau2oDAG8$HBF&xMjUB$)Fu!;%Xv0tGD>EMIt zRa^`V%%P!t3=DR{(6K28Xe;PPd}!$xi%M43pBopaia(t?GbeP~ra$g$lVw`hE?jpm zMCSL;|NVWTLB9ZU*Eg%zIfYKIPYE@x(fgS>O0^nKZb#T|{StP(dJpElQeF>}~D zPm3BOecPOU)Ar2Sv@`$H&uQYZXVZg)gtqPKy1n|q%+1eMpAlZ}FVhp7y3mMkJu`#E znvJid6Kmsxj+%tW|L{|(`nu&`$Q`ZheV=C7g^G6WiZ3hOt8)HNiT0U?*(f_`NPK@cUjJ_g!=DNbLK6borB}So^yFYhH_1ihG7e`mw*?^WxpBoc#AS_jG@~ zi<)rH!m{#nMbTXST}Ql2Wy+TEhJ>;a|e>-&N(GI)(_}kteOV`Jh{twyXn7?M$ z@sE6;KJKpj@$P1K-o?|_lAkjxR2dE|ILq**?W^-7ElrL3La)l@JEE7Ys}@&Ezf^r} z6=;l4L@ihAm*p3QnFQbJy_mycd-hs}5#lhR&aoo*QX=9u|*s#hg zO66mqwv_wTt)KmEu76rwQ6rJL;zoMh)K@h>8dtmyTd|JmzU|vaWnT{pfNlXO9>|!iQDAPKvCZlwUsi=&aKf zn^&bc^{y?OY;LE+F*`qN%O8*3D^^e8xo6?&Apf+>y*oc->)%uRc2sok*x`}>Z-)P> zRVsJ?uFl#L`opOt|9{QLBWqFu{ye^FYO_a#;lcKx&{?rp4))x&UTl_oLtt{`Jx!t7 z`jhjm>l#+gI^(%hS?I3))`M45E3eG_eOLcgS!B=?iFG&mPy7y%>$$bZ`0Jy$dM9}p z4!7>vw0p0C;)UYY=clgLy`C0*;fY;v=u-`|m22-VI=4tA-~9iURq`&ep@wQ)6`BkO z@|UiPncviYKEBj@d1$f)a0u&aDU#aEYk9yxPkmAvZhNxS6k z@BROG^}A*3&xk&maz-h?q{}?GGp@w$)f*vO%dI}4evbFwKiM98skCcX{GIc0XQqUG zefsvv_ElQ<;;#Mudv)ujRp0cSm+f@^GN&e{Ff=-D-;0&2?qrDmUh--Aq;`?LH8CQ| zo)20X81}D~Y%t^!nP%00K3Mfhs_>NLr|Mc-z7yi4RxengVr^fh6dN1dYnHg?P6lh2 zmV4-~;;R{zPQAxdwNIY*4+#nineg_dNg8}$HB2k|`Hbyyv2{&KmF6eE?@H-cjZC{! zp?dRi*Ytol_2&yu<>>C4)^#aj4+q18?ct#e46xEPM3f=HB~;Y?JrlzL!!X2TKtSk^ zsXj~+*8)O+$cKb-Cd_aOWejC?fD)iSA-DtiZ+ocfijYPBMNO=Fe|f&Qk!n60wouqZ zU=^1^(dt!6!r>)_m#4kKLE>L>sPA^=-sgWytJ`N^-ZsT_ z$(hifTQ+LVU3zFq;u@*aQT^unPVVw&0U9N_ySK)tK9R95(=fG5dg{a5b>LX}-uBj%HC~S+s`5PT z3VsB<66;@?HR-~u8|!cHxmEe^)QKfMXRc_ND~m44vN*#ap!Pqa{)hanD~#*sSZF@! zUT~mrll05SGMDyknZ2gN+>qycW$5A!i)O8VyJY@t)9EQ!=X|`n^n#CB%$k$^A2)2C z^?Z8S=d?w8SM6Bk*t+)Xp=ZZl-`sdlEK95Gr0Lh4vu)Eqc?qUM7F0&8fqAPUm@rm%WwQdMJ_U-VuW{tGyB<-s))HOgyS^ewF3h ze7&1FE=y;+ipSowh%`E)Qo?*bTCFa5TwBDN}9-_&!K_P$G+d)4lTvu~8z6#BHHPO|bF|3vYB@ezmis}+i{ z@0+wJ;qzH>J!7?RcQPM6=?Jv*KK9s`=kVTDBBsy(_L@8Oa&X->+P6*b;w;Cw$%xUu zU>nT^@+C_xFT3u2p2xI(%A;$$@0)S2m%IBk|Lo$u>sGbBK6uO6j_GC6m6d_1rn}d? z_`Aw$yPrrLuc5=5ww%zZnq4fu6Hm=hDEMC-@$LRs3Fg?7LgA$gTa)gu`n7ZMDuX|( zz4CV3U!1c)%E9zj!A`Zik+FL?wKsn%nXq)?Nt4c%ZdFoSwy)B<>#+2Y>6WN%uiZYs z4865C^yv=ymDXEVEnlT3xIJs~nwfuBdClIs`de5Fr|4FxU)5nNPgSP;&s57lpnZJy z@&2fd3%)D={~_sFtIopEmLJM__-nW{zn;k_tHAn8(K61f3M&FjyY^=NKgzah6-#m1 zo3p29`>eDLT{_E6Pu8wpC3^94z}1D3pDN8tuoeZrq@I8;9JH@ zJ#EdMp>eaM74}8d$0lBWy(&x3>c*c9YZva?v}xViy_(0P=X>>qa%X+_-gUCjXIJU^ zy-RoPS+(==yQv!5g$aRI9|ncG-g~8g*uRhKtgPrHYpq9bG|sDX9XSxLrFl^#E$6q= zpDQaSya{}${{Q^hM4PfTO%nq{i%PuGH=fjYGyGN7ckJ4e?AIJSUg^BFTM=S4+4KG9 zuMADcf}X$hxg@;8cxn0KOD}5oO>?~$yI}R{)bDqiy^;-HUb+4~H1UGK>V?+py?jzu z^oKw8OSo{acxgq>={XA)SvI;oxXZ1)auvgTi}hR$pxGk^@F*ITIAFbst6?$YqE!qG z&8(rUNTufk+YP478@6(Vww{j(eN)eTV>1_M_>KXYa0q2&TL_yy@~HO}ePA29RO8ZB zwGCI*FI3h0hDLTe1&7pSJ8DJ$`Mt^~?fgNedmAMV6s*w7b@M6Q9dW$*+&OjGNt@4F zYO}83_>&VVYUx)WJN^If4&lX4{k>e)e}8vussE(m71F)GwdQmFSv&jh{tr*;TK#B0 zF?q35kz20KxAqmz_172kZ;&{!VHTspk&MaaF}ap|BAkmDIUDD%*K+-BZ>PR*i|MQz z*7ueeh@A8YO8=9a{A<6(`eMtA3OOMcb`@@!_jHQp6N|5Jk2179-t%fnLSg99<4Z1W ziQHZMxMtp)s>a%aE&F?CeqNS)@bt7bz5doED!P}BHfZjiYI{^wMNd^(*X}@=gL|c$ zPw3UV|0H&O-mjHkf2rPh`lRGFRz4N?lNb)~UL|t4bb1!Q&J?*X{-4KK^^V048e4l=G(OSi&ymr;2$9~t}Yz!6bcYPbIrMK2xY0F>kSJiy| zr{>KL3YRjS>Sf%mw@b%bMH@Du@uR0>RhRvB_H{uMLW&NF{NJy4``h%?hyNc6GCvK9 z47~hq{=4dZ9H;-+Ry>P;Hp6$pf>j2eR(T~x919CM8f~blwXHhq^tM?SHELITnRaTd z^xc-Y(sFrdh{zL9S^X6&&Xrttsc}0NQF`fE;Om+tp>t2nw5;m-e80))zoJ5&+4L!$ zS!MOSCx5>d5e*S_iwo7v+5O~`_H3WXXNKFg_RsR|bNC%LHErYKRc47|&X;vj3Lguh zuO2hQV}BjLkXv--UV_yB$A3dr4Ug-b`ZIYcLujjDL}*u=ciP*Z3ePWeFFpA!$7}y8 zqq9ogw?9q$tP%3~!=hIrKFj)!tkQb@_xAfE^V6g?_(HDMe_ByHZA#9U>AuVTe!E|| zcyD9Y{-X?SwV|3d>-XF)e_ysuHcsbf$ojYS?*gCSRZFalEX{WJuG=s(g>C9)g_T?O zE?&B8&5|c!m6>@5Qr=89by}r$k7w%({e#Q@Z+Q7)#RTQWPW}HCi~ifQhIs1f|Fc{5 z;QPc$!7i8T&p7?l*U7(fY)+u!&c#Z8^&2zZRovW@wg2e9)otHRdG@aodJ?|oSKZ34 z1rrl<)mAJ^9Re=~A?_igKISbgr0`6joZ(51;CuFIZPgr4Q( zaXbI5wo7TM;l}4nJSNvPdd;+&xKQn1p6Jw1zxwj^*$nQi`XyHSoabSree9{%t9Gqe zth+*sVb!nB(9rT<%N{B1^q=}=Qs4QNt4cydLG2^^+BKl^1JuU_jp-i}SgFO($JVim ziGfE9r6b$${lGPz18mwMqISih8~^kEIrhEp*VOWL;C2?stPoLHAp&Z3{mltg%_w2p z``tZwr3u^QzWZLS^VhE0^utxzabHo~e+wsWnZQi~lf4=pBj?m=1FXpq?US%s}a|pUBQOs8Bb)j|J>DRp~?emw-%-In!S^jZi zy6JiSx6jVHRBwisWV{ZLl1$I5dDXW+)9-71sq$Ub+_mlg&R>81w0LZ@*H5`LOIdnv z`1-i5SI+K!zGwN`zt_6jRI+zH@w0hvtXp~7Wa^H z?U`5hCT>A)baU%vPyV$!Fn?rOJ*zm%)zxv{m5)tbuYAn+rRKPX?h&25C~5cdZ8@tYc^5i{ z{_YEXeQ9op{mNBddt5b-t}Wl6D;8%t>w&d*cR-T$J8gY^3$>}?0g7j0mh@#DP=C+t z&=(QB-SX8-%RF!1`AdIgzhPEb`AY2Lo>i~z967aY&QqqM)l;L>p1xG@R-T+G6x{p8 zBm=cjJ?oMlaP{7*BHN+@$U`m=AqV@Ko!!Re!~<6r5aREB{2M zYNN@`dA(ZZ-*xb&1>&J6^wDb2OzON01=m28XQdtja%1sG;wJq=&#wk zj+fOjVAYBQ*YdlfQ)?zOv2k#13xBwC{hO_m6^o6Yo_TA0-ctSf|0`Fnd|pz`$?^R7zYVli>LwwSgt&5v0CMvgm;|GU}%QV<` zEpj+_#&hESr|<0}=1hK*?lqyAo0;JN|NAge(W!aayI*e2Pja1T?)hxz*8+iAJO`}) z-MjGbTUpyuAvWhvnpKDXK95uslcG99bu7tELCSdg@9 zSLoS~-`(=64=?kq*}iSg{b@6gsv8?0ovh1$osEH^V70~eqz`(xXYE*@Cudi={_lPJ zeWui;myLhw6OcHOBTd$NS`Xri>f#JZ~`D}@&^6SGwYRPyi0T4wd~^Sk%|BO+zOhR zA6#1}AjlQU;L0JX*wD$gBf9jM{*Bd$s?(6&VY5U$uIc^0-sube^e5Y4+X5 zrJsZA?nmy~uaNyuC9cfjcG9n=)S1y`V)9lYQ|3NMTz6UUM^uI0y)C~lY@Fo0n?H8_ zP3@A^jep-v@x5Ixo)h&Z_o&zu$t_CSWxI}6{BQAn>6mA-{2+og_wy0fZNZ{r;C zwSEPcMb}-QEjC;1Vb0^7Cdy_O34vkn-W|Flk}ur#VSS15`yXfCyxkc&QLjqn!gc<~ zVX@OqQ}w0%*L4@j=O4NzR`|L(`nS>JLrqQMYiz6kU&~*YqnjIj|HX@+ijIu?>^_^t zto*B7CG&o=%=XgM@A}V=u>G#6Jb!MFLc!|3;8Q)+3<{P)Q7>qZ`VZrMaX zg$Mn}$60&yoqT8zK3m(s@e0%9rXH9T+e{|6{ zqvMkgYkv-MF6`jE^N(SNXztxjUi+$kmy1j3>&=}OTc&ny&Vf#gy7cAC56u0ddGqSh z(`!3Bd~ZE1=1l%6$V*cb0P*e`mgvqd??5_sjEvoe7JVSf0w(bKHdro-j+3~ zPb}T(#jeBCPitvwt$t^+EhP7&TdQT+yT)6=8?VKFUhC$_Dk_@Z$7NBrY|$=@D^s3d zvzPug|1fKV{L!`Y|EF|Be@yvpn!0_Hj7G(*)9*vg!)_>41a247oxDCYw`iG>P4Ved zeewbYA1WeK8|}Gyz8&5dP334q}lrW&#zwh*=u2RY0UL|d6t_FIL-e5Ltgs~r^T}P)#pAN zzq)6~mdDDrE}HXisrI~=u>qw<$BIwByyScN#Sgu_r8kzu?q+v^t0Y3Q4`uyg0qty5<%%sVb+)_(Ziil#~ z#+x>5GI;pm-irbsA6^#ui)qp`qi4K&{o=)juU6YHT{3kzUe&wV$Xu-N>#HC&1|FyF zLKhxJE@Ixq!LjQ4Zg%Gz6?+Ww&VDz)V0__u#>I|Bw-rmoW|s?R1tpqX@1K>=%24q7 zdT}9AW=|rXDvtU z?Gty7-8*^l+@Xl&uV>VP^*8+6HTBTUT^9d??p_XGA7_)9_vrtN+pFv6U60rDn6b>C z5o8m?i|x^-Z>LYWQ+>0>RR7%JsOgsk*9e`6nl_K~XSnm#jzhN-qg-^?kRX6Uhw+3qOpYSt@Rzpxcf}!bek*J?TUUWwbwtp zb;1f0ukW7B2i7v*S?gx_e09;XAp7NhmzO`k8osuCVfhN)_T!7Y*#gtEKkYTyw<)^w z*S+ljIs57#hrMmJP`<#u`zy=y z{oI=#A79IH+tMhz`r|_9>h0q3EAO%9$*#yN?TFaD|IfLbd)~ZxbJcjR?et}>w_i*6 z_Qp(paqh^=8|=rItUa%(p?5A``sEVW7aoc|U%hX|Y{<`d{Pt_jn)}z*@fbZnV;feV z(wDb=*16*B#4BfZteMkv_x7cnS+1@+dq1+q2sHV(vZ+TeUL$&a5|k za%T#j%UQI*r~IOANVs}$eA%N*=YBrsVdj$7Z;C#+R{li$rL%vo&&m2V{q$2iYol;^ z#ga=COSk&&iq0XxALadQyWC=T#qzmq+xcR)OZm;399y;9 zKr!du9)a}s8Jl~{wX(AHMAyws_C7ATqpkJqmw6ALy%O5->(SlAi86IDmd^{$9yMj` zGkd&D&obLZ!UiT^qG^@8q|+7aZ$cCas;*`RdVW z72lZ1s`rO}74T0#c`k0{a@IW68OP_ZvY96KBI&)t*?A1d%j{SzA9GH?YT?nxa!=!drryq%4+J}41J!=B9z=NyH@W@`X}#& zvsjnCw~YV#;pS)esqB+tws1D>C|%C(JHhnBx%GOS*M;NNP8Qad9`%ZLnm&i&pw-v& zn?I`61V6Um_MftTzRRmx{)1}|v_B4Gx@+@c`)2;Q;-7`tEvm;CFxQ$jpEj%ZJcUn#4(Y$%1{OLXJrB73zif(@`AGW4gZT0HMXNA{a z5pC~D4LFhWe$J*#rhZG-t&K8SJk$EsyZ26i)nA2OdeVD!>B(so8&i##x!zA}*}VH% z^vid*^X}Q~i$Bo#I8~H&-z?j20(ZE+Xy5lT{N|&-GS@~xOU>%)x6|6zlQWuYQn!m; zpWkc7w4E<+`zB}p`?hBHXLQ(=2(Ou}H|3LUhugYmpTCFSU%hV4jzX*QiOj)1r?2(w zxt+e)ch?TlnOh#7>kZM~bHivRqwCl7#XP%qO???1P?vJCW#hB38lAIWBv}fyKd}Dd zoM34tW~;7|@bk@%V%_9J>U<4vS4Rup?uq9A&c3)0ucz^MMc4F~X(*N~3uBdKX6e3iGCSY=NwwjTol_OI`84_dTHF4+siea7!Iwj< zd9KV)?6uAO7nWwrGjC^_f0x}m#vyz2my)yc7t=WYW$*l2ag{GFTC7nxq~Q6<#cjLG zU%xuFKJ1Pj!*;%u?QuKz1}-?eZtpUVG{fbyXRlr#tGRaF%3Xm!A4Hb+iT{f5GmEeI za`3)>RQ$icuhuW$sy<0}|Vosa?gl9ZA&_6s3}-+~)4wz4-Fl*Q>pz zM?X9|y)&8p+5O5(mjdr=eg65EWya;})3@1VtU$4BThy|-jMB!G((gm6*;DR zs3!-+m?QxadCLviU5(|BmV{tB;ewWr5t)zvL8*r)pS^E=G~ z?GHQiLYG^q%wMzfdPH<^@a+pF@2|ZpFlNcidSHE?GvLc|Rk7)&`ztOMJ-;vqII0=RBJ z0FnpGKG=M>i;;nWVV?|`i>A0{e%{pJkf5-zpb5hJLJtMLkP4X-wEtAVk;^k@%@SF| z6eGvLz_vG9^o8Ebk$Fav#VW<`RLuP1 zj;xKz`+a-cw(Tzt?Y}PUD>60rddUCJ<*z?4KmRW)`}sEeJ5T)%B|Nz)xIBJ=e9rIZ z>%(*3U-12rx3ucX{p!p2uHCwH>DR8gzdt4QEL3tkX~wPl*;o2~aR0Xor2<|?h98YZ zOmnN=c1Qe_OZ}aCKd1Ke)63sJgq(5-a=)|ds$_qlSzOi6_;;u6pBWeweadK_zRGIe z0WO`YL$$T38~53`S%12tofloXYpRyp#e|Qkj(!bxuRXNC-<&A0OsVZj+=mIje-+J{ zH|N0G^ZD<*<~~nbxKN4xx&T9i{E4+1`)YoL&QZE}z%=P^XIp*1-f7EcB)NWC>vG<< ze`oIX=@J^7nTyxkSA2XwyZr6j44vQ4(k4yZGs*SX+wwc^yKOs^eunvO-qN-Gj`{j| zwpp2(m47z%{$7{0v~|*fwSUh%WMW{bG0*#(vVm{*tJ^#IKQEiGd$*|Q%GSefU;6#~ z)OSVBJg=4WaNAThsgv5DOn;Tkm*3eQ9epnU^qEJKXU=?davJ+~CI*9!J6${U&fnix z`1RA$Zt>;fcXFN<{kIZcxLE1f+G&$Fzc1W*)?Ms(#rdeZH9PfWJ0Y+3 z`>JgPefx}N<)7X4`V8jZonJZVHzT~jskW*{wsl!K^84?P>c^o`Oh@8h~Snx0~Fg&Y-jUR&L7z(sM z>_0BSu+Mm3g(&NGrvK90S1})${@6HsO2qcMn@k7SGJyIAP0@_t?gS$PXxIZP_^shc z(6y~0SDvmA`gs4=T8^nlpA~%BA{o-cAjkOYRhUie)H{KZA4N=EVved_3eD6BYc-aA5_>##;&}`29A2G?Ew1`fp795B z78S{#k365H5aqdVZ**qa;&kzUQ|dn2YyVu|W50xnd5Xr4{6}F&Dz5c)sh^)M{rc4_ z>DhAo*W7#J#5|RucIA$U=8ToCpQo+}D^lB)^-J*Z-Q10_d0MeO`Tx#qwyQqsRu%g8 ze^1SK4d)>JaxUk>q!l{tx1N8U&)|AcJKjj8>dTXaNWQn$0crF3eGivM#4M_**Y*4^ zAvayg{a4RslWW;7E_0X!OJA$JoN;xNyluM3$Eywzo*(3kv~QOAEz$mb_^5HLvUBdq zzs1^ziz_Zw?hEzz{&ikXHsnkEzQq5tCn&iet}WeebZ7hZ@Z5sbl9tshN`gw^3;gqz zp8EZazxYbHdQnQP8Q<*bnr{s}@7-|Oy7hSngMOyd!X*cZ%AL6`$;U0%hbC zWhdHSF|V5Pdy(O>o^uW!XR07?=x*?!qQu+ z0ZQ6_9a0-J&KunS5g5m9z}A->V>>lt7niWou^E@DZws8BWpm6p)g|DR$M;sF%Zuwa z8UD>Dgq7N(&-@SePq`*OCjPbbzzPSr_h%PrOoSSkWWu8^0aO&AFA-u}&J{wBz@6syDNv+++Gc$4dGQS|hvdJ^2+aJ2=eC=GU z-*#h%R~zLvPV02yE(tc6qwsoPWYRsK)Qh{D6ScEnYo%K`9=z~%`p;^&8(E#NVvZ*K zTG7gS$?x5!vb?TejE9B3c^nnzTK z-Ai+m!tWm>|IOIww<)gDUiH1i!)My*uQXmy)i%5y?)vBA!o06i+fuF<^v{$qWgF7f{v z#(R9pTJ2r0L`7dub8+we_dGgO?dhNLr95ld+*cL$uJh88Fq|p>@%+}3e+#f&$Gvy$YMI8RMB=bL%W^~)=Z=8F?|yGwq!JdJ1n!jGDtp77^(nD$KP z;SUgGdoXiS<2jrD1$n*EYCg4}UKOnB5(97 zHt65vkloK&toDf%PU?Fr#@6-5SUt+9YM;=$Y(IxLdSA=fT+R#q@^>=d-nGB%t`W1+ z)dip&6Fsdh`O&m3e0vuqo%Jlb^kd34ojIFcpZlL8(r=QwN-@P$NwWK$2%n?)h3#5l zD}}WEd1s&al~%h!fOqnPxuxIBe;duT`x$!tP-`dCqOYH%w_mrMP*wc;=Pssv-?~@V zjNgBg7yPy8WX$IaWXOXdq3yXYkp2?S&W&0vtkx6@gtnQDr*&}s0)aqZu7D?Z; zC7mHxZV4Wg{Bu2OWk%z?Ur)kJH>XZglyiFjfX7{5XTrmdJ9k{R-MR8*A$Pfl?y2c9 zH6B@QXW8#+O*$yDd*QV=iXXL8B29EAsy^SF+%a2p+wAB{|J{-jj%VBpr3Lp3#fsIJ zEXq3?eahwkKkdceotOE_iEi{y^4u6wvFl8Qcigq0D{ET{7bpGX-~8xX~=)YJO$^fAN2l z3ms<&8^r5PJXn7^dVl>A!46GgwE}iTrCGy8F zae8}ot>M$d>*Xr;}?M6My$q@$sDUtA5-I33>#?zlaGAH;bKcJ%gN5ESt%$C)J1df=s2S|8lJfD5^0yZ*ce^%E={zZW z_R#mb6HIrFLoC)Aad)-f-n46nXuhqMUj7!dxHopIqn3G|`TX`>*v8#oGV?_1-&W=N z{w`4cnINyjyZp)C-;;JfkNAC^z59`s(#q_8qNUmC`%LZP7=PZX-QZ%yCUC(dJJh++ zd~(Lrny-H6Oswjc-kalW>i)dwhuz-toOyEZFT3phFfUIvN^f`6^!JCW?w@bSm{_vY zNP5y5=Cfhrt94K|tHZ8Lrcm)P#gy_3{> zZi8XmmXA`)AMFS{<$U4y^7y>Bxz4-h{13~_&ee%~qOoh|)c3)G+q>*{z014XcWUEz z=eqgIVRN>nzEE*4%v0^SpMJM8sPmy}KaSyTVo zeV6n1h5TZ1NA+H(Cl+7(H*wi4t!=C8#mrLPPB%-hX|{{FDT+K)P~^VBP=CvnqWcAZ z6TO|Eo{cW;mzxv+?!fgmaUb5@O81|2q5s;Q9buu{=fA)9V)Is~?THU%`2u&40tt*^6}{#H8f#J*ns-r5S$_THdTyeZXTj|Wt(DGAdsu&3i|+R6T#|Isb>}6sTd|+| zW3OF)+Isul6b~zlD@PZdw%fqerYbkB=gh<|-6=5<3KREKFOiJBB9*Lk;f}o0vhc}2 zcm=0+&JX_Z+*1_Y9j}zvs>6K# z{_Q2-^IQ+dl@xFM-IJX7=lh>IJHn0DMI>DeTlpfT&YrPw_m$}VdKWjh+_F>)d=ZxT zKkVamzZ|g_i>E%B-6N}@d3*gd0UntX7XRfN(}T;sqhBWNzqmt3Y38{r7oFQvFYdP4 zs9Z8_USp%*^r;-N(ed)JtqLMqGtJw&Jr)Iccx+$$#nNild-sZk**9crZ7+r%;FsP0 zNOM(6()@P}GJ(Bk9`v4mWpz!Un}aPo(3LIw;f5E@2EL1rC#Us)eX*@X_hYm8McKvK zt2qC;Ecq&-(2~HaUBIH#_~9Y%Ri4L7#9Fk33;(>B{rB}9r??AeUw`s^(Q~TxuKjM^ z?>1In*1zA+*RDFDWw+wL2^Xh^gzj3$)q5+@!tu|uNBm;#t`e(6gx-69Y>D%)IB%@* zOy^;xp>@5dtpA&@FRJ7he0}Kk>FlvRNt(-w{4QQPIP-9`P^y~MiU}X@mz>dN__CS* z8iV^;lR%-jVX7P0~Kwcx2MwAjWxG z6(1CLh=Ten`#D~0HgG!lsBnQ3(saj%$2&wB67-xvBOM2>v!X7pXozNfAlx`jIAMcn zUt@G*{*$m5W-L6b{9+;V5^xeRb#h?s{mIdSTEB!>zu@0t^gunV(Qb$6@!wPZ7oFg) zJIlhb{o9Y-AJ@o=zDQy0EiL`p>)Rh6mS41Rp)tn}m!*0ImsplFB;Dz{(c5GHulQ18 z=Mm>U;g=d0>ZRRy|L9+mh9A$=rvZ*8&3D$O+_s#!?hJqZyq8jvS>FG;@=|x?uU~)b z!KoK>jJ*wNr_~+#czdTDPXU+0v9(7yl^=huyXaa`EX5gjpZgEzKOaqnS&s7Cvn-aq zjd*%!)pzP+RH@Gll~S*F{GVQ;#=Mss&{ zb6?Y)v*xm4EBD<_N~&@O}d?Xwx-?tIP>Q1;>}92Upy3+GQJMG z=W{OB$?dn{x_MqEv8|kf$v!V%nQ-?Uj*)yX@^a=$BjGh6)^^>gzH*Oe8YyX{F8S>= z^JU=v2+0-MRy~DZk4CVa`mxNbnni2F7m-{ich)7|)vTwpOU_s~6+DqucKfL}ab|+D zPFLRd*D2+d$=ff!>%0`Vut=xmoqE@!9~>_`{w&;gaq%7TUcm>Gv)I7X!fFm-t%j$60wQHg0N}8G$zSjTzy=TMKN40HcwJvv_#p~!!Eq!yW z<&A`0YTKN7YWYq3kK8?+{v-LA)yb--f2Zt8ZkfG)&dSAW!q**%`PXv+qg{P`_Cvn8 zttBVdJ(M#xOyirOnXS6$(9{nqqRHknD}O4_u}yh<=V?jig4vGq^RE{8+}gEhbzI=a zJkOFVKh$y~S$6$A({qSBlz;wKyIr*fGgs^B>s;-(37q=+Ua|Hh-%mTWSIb_gm|~{7 z`<2t0gmR1G{!nq&4He7$cGu`R8qCx_sPHP~CtEsKMW(_o)4cZ=BDLLF(m%xQ+jpws z;FdF*pPtMsowvZI^6`XBu?#1%Yzciyxdn&fS0~NZlzee!^O6@&R_^)f9{hx*b;0Gu z$39`l;7(z8xAc>jtc#e`QUrK+eBB!-ynRXO3sKQ*ze$si zZGWS#@MB4v=ZABDTzJ?~^hsBP(4){~qr8suxny6yCjLb?MQC&wQk& zKHj}`jY+XlR$yCtUgXV>%uIZ8`m1$5q&H4yOS@y0HD~f1$@i-HNvpcv8$Pw2sB3Oo z`{IynQ1>TQarsHJ5)Ws;aZ=yWAFp_NQDUc#<$GD@J8L%Fz2j9ZEjYbV@QL?D&sC4Z z7oE;p=DlRmH7;AZJz-k2^y34!KhjNIRR4b}V;<}FRo&OKgZ$cdFI-sd<~M2avF)$b zFPL6_H8H%@EG@@;`>R&jozX&xUP=NN4wT$HDqXXE(ZtoRM;c!(dv#mX-2eG8i>!}f z8~<>h>OXd4c68t4YE|b8KYw4y5MFOnx%tA{S1MCKN>1Y3 zt-APg+s_}GoH81(!shuKr?UEgp0ZL|Xw!vM)6XI+Z`OI~FsJ4!-|Jp_c6LeBm9-Y$ zGiThnsAIE3^vadRhqf9E~#$d3ol;%}`z)W_KLrs4ChRc%c9CV5w9?R@_1orCPb ztj|ZEpQ@YhCB7tmvi03nPvZ+puj@EVNxpm|(#^Jcy7p$plU6V8b_EyS(RiA8`uoZi z(JzbsMK4{uwNm(g`L+jT#oG6mFUouBy8GfsE|2ZAm(Gsf{`vF%lAWLiP{vWF?OiXW z8-Cw-7Qcr-tjzWE-|F74rKP?6^K94M5zIN$Z_<0X-_&;9YMuT2w9g0__S@dQ6I1*4 zRqv}?t7dPPw^@DfRj=KvVBJN1wm*KmzCOJ_{_ocX7RmH_TRNl*FwyC*bZy{L49<&Wt%3S~C zP_DDsGhWV5VF$lH3oAu#k1UWb$lh=EpUaXFUc0->Kj7qub)T;s5b5+j@6 z&C$Pk=5@GgeE6&f8ijmd&c+C;zkgWeu`3wq!=K>k4~QVhG>8_kAZQdA>uQJtpham65Gl|=Yl6V;uhkW;2?j4-8*@8? dCQ$hQ$v75dB&}mKcO>!X63V)=WX7f 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 literal 0 HcmV?d00001 diff --git a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc index 1bf80045c79..4a0edda2efd 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-toc.qdoc @@ -109,6 +109,7 @@ \li \l{Attaching Textures to Materials} \li \l{Applying 3D Effects} \li \l{Using Custom Shaders} + \li \l{Creating Custom Effects and Materials} \li \l{Using Lights} \li \l{Using Scene Camera} \li \l{Setting Scene Environment} diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc index b9b463c52e0..157d0934c0f 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-components.qdoc @@ -72,7 +72,13 @@ You can use 3D shader utilities to construct your own effects and materials. - \li \l {Using Lights} + \li \l{Creating Custom Effects and Materials} + + If the ready-made 3D effects and materials don't meet your needs, + you can use 3D shader utilities to construct your own effects and + materials. + + \li \l{Using Lights} You can use several light types as the source of lighting in a scene and set their properties. diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-effects-materials.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-effects-materials.qdoc new file mode 100644 index 00000000000..b5d03d9fb90 --- /dev/null +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-effects-materials.qdoc @@ -0,0 +1,163 @@ +/**************************************************************************** +** +** Copyright (C) 2020 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt Design Studio. +** +** $QT_BEGIN_LICENSE:FDL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU Free Documentation License Usage +** Alternatively, this file may be used under the terms of the GNU Free +** Documentation License version 1.3 as published by the Free Software +** Foundation and appearing in the file included in the packaging of +** this file. Please review the following information to ensure +** the GNU Free Documentation License version 1.3 requirements +** will be met: https://www.gnu.org/licenses/fdl-1.3.html. +** $QT_END_LICENSE$ +** +****************************************************************************/ + +/*! + \page studio-3d-custom-effects-materials.html + \previouspage studio-3d-custom-shaders.html + \nextpage studio-3d-lights.html + + \title Creating Custom Effects and Materials + + You can use the QML types in the \uicontrol {Qt Quick 3D Custom Shader Utils} + tab of \uicontrol Library to create custom effects and materials. To make + the \uicontrol Effect and \uicontrol {Custom Material} types appear in the + tab, you must select \uicontrol {Add Import} in the \uicontrol {QML Imports} + tab, and then select \uicontrol QtQuick3D.Effects and + \uicontrol QtQuick3D.Materials to import the QML types in the + \l{Qt Quick 3D Effects QML Types}{Qt Quick 3D Effects} and + \l{Qt Quick 3D Materials QML Types}{Qt Quick 3D Materials} modules to your + project. These modules contain a set of ready-made effects and materials + that you can apply to 3D models. + + For more information about the shader utilities and commands and their + properties, see \l {Using Custom Shaders}. + + \image studio-qtquick-3d-shader-utilities.png "Qt Quick 3D Custom Shader Utils tab in Library" + + \note You must create the actual shader source files with some other tool + and copy them to your project folder. You can then specify the source file + names in the custom effect or material properties. + + \section1 Creating Custom Effects + + By default, a custom effect component contains a Pass type and a Shader + type in the fragment stage. You can add passes, shaders, and other shader + utilities to the effect. + + \image studio-qtquick-3d-custom-effect-navigator.png "Custom effect in Navigator" + + The fragment shader component is created with a placeholder for the path + to the shader file. Specify the path to the shader file to use in the + shader properties. + + To create a custom effect: + + \list 1 + \li Drag and drop an \uicontrol {Effect} type from the + \uicontrol {Qt Quick 3D Custom Shader Utils} tab of + \uicontrol Library to a Model component in \uicontrol Navigator. + \li Select the custom effect component in \uicontrol Navigator to edit + the values of its properties in the \uicontrol Properties view. + \image studio-qtquick-3d-custom-effect.png "Custom effect properties" + \li In the \uicontrol Passes field, select the pass components for + the effect. + \li Select the pass component in \uicontrol Navigator to specify values + for its properties in \uicontrol Properties. + \image studio-qtquick-3d-pass.png "Pass properties" + \li To execute commands during the pass, drag and drop the following + command types from \uicontrol Library to the custom material in + \uicontrol Navigator: \uicontrol Blending, \uicontrol {Buffer Blit}, + \uicontrol {Buffer Input}, \uicontrol {Cull Mode}, + \uicontrol {Depth Input}, \uicontrol {Render State}, and + \uicontrol {Set Uniform Value}. Then select the commands in the + \uicontrol Commands field. + \li To allocate a buffer for the pass, drag and drop a \uicontrol Buffer + type to the custom material. Then select the buffer in the + \uicontrol Buffer field. + \li Select the shader component in \uicontrol Navigator to set the path + to the shader files in the \uicontrol Source field in + \uicontrol Properties. + \image studio-qtquick-3d-shader-properties.png "Shader properties" + \endlist + + \section1 Creating Custom Materials + + By default, a Custom Material component contains two Shader types, a Shader + Info type, and a Pass type. You can add shaders, passes, and other shader + utilities to the material. + + \image studio-qtquick-3d-custom-material-navigator.png "Custom material in Navigator" + + By default, fragment and vertex shaders are created with placeholders for + the paths to the shader files. Specify the paths to the shader files to use + in the shader properties. + + The Shader Info type specifies the shader type and version, as well + as the options used by the shader based on the selected shader key values, + such as diffuse or specular lighting, refraction, transparency, displacement, + transmissiveness, glossiness, and alpha cutout. + + The shaders are used with the Pass type to create the resulting material. + A pass can contain multiple rendering passes and other commands. You can + use a Buffer type to allocate a buffer for storing intermediate rendering + results. + + To create a custom material: + + \list 1 + \li Drag and drop a \uicontrol {Custom Material} type from the + \uicontrol {Qt Quick 3D Custom Shader Utils} tab of + \uicontrol Library to a Model component in \uicontrol Navigator. + \li Select the custom material component in \uicontrol Navigator to + edit the values of its properties in the \uicontrol Properties view. + \image studio-qtquick-3d-custom-material.png "Custom material properties" + \li Select the \uicontrol Transparency check box to make the material + transparent. + \li Select the \uicontrol Refraction check box to specify that the + material is \l{Using Highlights and Reflections}{reflective}. + \li Select the \uicontrol {Always dirty} check box to determine that + the material needs to be refreshed every time it is used. + \li In the \uicontrol {Shader Info} field, select the shader info + type to use. + \li In the \uicontrol Passes field, select the pass components for + the effect. + \li In the \uicontrol Material group, select the + \l{Using Highlights and Reflections}{light probe}, + \l{Simulating Geometry Displacement}{displacement map and amount}, + and \l{Culling Faces}{culling mode} to use. + \li Select the shader info component in \uicontrol Navigator to specify + values for its properties in \uicontrol Properties. + \image studio-qtquick-3d-shader-info.png "Shader Info properties" + \li Select the pass component in \uicontrol Navigator to specify values + for its properties in \uicontrol Properties. + \image studio-qtquick-3d-pass.png "Pass properties" + \li To execute commands during the pass, drag and drop the following + command types from \uicontrol Library to the custom material in + \uicontrol Navigator: \uicontrol Blending, \uicontrol {Buffer Blit}, + \uicontrol {Buffer Input}, \uicontrol {Cull Mode}, + \uicontrol {Depth Input}, \uicontrol {Render State}, and + \uicontrol {Set Uniform Value}. Then select the commands in the + \uicontrol Commands field. + \li To allocate a buffer for the pass, drag and drop a \uicontrol Buffer + type to the custom material. Then select the buffer in the + \uicontrol Buffer field. + \li Select the shader components in \uicontrol Navigator to set the + paths to the shader files in the \uicontrol Source field in + \uicontrol Properties. + \image studio-qtquick-3d-shader-properties.png "Shader properties" + \endlist +*/ diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc index 27c6c5fc1c0..2232020c60c 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-custom-shaders.qdoc @@ -28,7 +28,7 @@ /*! \page studio-3d-custom-shaders.html \previouspage studio-3d-effects.html - \nextpage studio-3d-lights.html + \nextpage studio-3d-custom-effects-materials.html \title Using Custom Shaders diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc index 6ff97946a5e..a1839cca56a 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-effects.qdoc @@ -44,6 +44,9 @@ See the following table for available effects and example images. + For more information about creating your own effects, see + \l {Creating Custom Effects and Materials}. + \section1 Available Effects \table \header diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc index 8a1737c0c34..555bf9d91b9 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-lights.qdoc @@ -27,7 +27,7 @@ /*! \page studio-3d-lights.html - \previouspage studio-3d-custom-shaders.html + \previouspage studio-3d-custom-effects-materials.html \nextpage studio-3d-camera.html \title Using Lights diff --git a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc index 54873e84d50..f198f2d93fa 100644 --- a/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc +++ b/doc/qtdesignstudio/src/qtquick3d-editor/qtdesignstudio-3d-materials-shaders.qdoc @@ -3,7 +3,7 @@ ** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** -** This file is part of Qt Desing Studio. +** This file is part of Qt Design Studio. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage @@ -48,7 +48,7 @@ \list \li Default material \li Principled material - \li Custom material + \li \l{Creating Custom Effects and Materials}{Custom material} \li Texture \endlist @@ -56,8 +56,7 @@ material to define how the mesh is shaded. The DefaultMaterial component is the easiest way to define such a material. The PrincipledMaterial component specifies the minimum amount of properties. The CustomMaterial - component enables you to access the Qt Quick 3D material library and - to implement your own materials. + component enables you to construct your own materials. You can use the \l Texture component to apply textures to materials. It defines an image and how the image is mapped to meshes in a 3D scene. For @@ -219,30 +218,6 @@ is not rendered. Culling makes rendering objects quicker and more efficient by reducing the number of polygons to draw. - \section1 Creating Custom Materials - - The material uses a Shader component to specify shader source and shader - stage. These are used with the \uicontrol passes property to create the - resulting material. The passes can contain multiple rendering passes and - also other commands. - - Normally, only the fragment shader needs to be specified as a value for - the \uicontrol passes property. The material library generates the vertex - shader for the material. The material can also create buffers to store - intermediate rendering results. - - The \uicontrol shaderInfo property specifies settings for the shader. - - To specify that the material state is always dirty, which indicates that - the material needs to be refreshed every time it is used, select the - \uicontrol alwaysDirty check box. - - To specify that the material has refraction, select the - \uicontrol hasRefraction check box. - - To specify that the material has transparency, select the - \uicontrol hasTransparency check box. - \section1 Applying Materials to Models To apply materials to models: From fdedd9570be3ae2b0a43a4e911b9b437db09113f Mon Sep 17 00:00:00 2001 From: Ville Voutilainen Date: Tue, 1 Sep 2020 18:33:47 +0300 Subject: [PATCH 20/33] Android: Don't require arguments for a service Task-number: QTCREATORBUG-24557 Change-Id: Ifc1c9c5c2fcfaba48e043e4334fb019efa611f39 Reviewed-by: hjk Reviewed-by: Eike Ziller Reviewed-by: Assam Boudjelthia --- src/plugins/android/androidservicewidget.cpp | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/plugins/android/androidservicewidget.cpp b/src/plugins/android/androidservicewidget.cpp index 465d2e2600a..dd4e1f297a9 100644 --- a/src/plugins/android/androidservicewidget.cpp +++ b/src/plugins/android/androidservicewidget.cpp @@ -42,8 +42,7 @@ bool AndroidServiceData::isValid() const { return !m_className.isEmpty() && (!m_isRunInExternalProcess || !m_externalProcessName.isEmpty()) - && (!m_isRunInExternalLibrary || !m_externalLibName.isEmpty()) - && (m_isRunInExternalLibrary || !m_serviceArguments.isEmpty()); + && (!m_isRunInExternalLibrary || !m_externalLibName.isEmpty()); } void AndroidServiceData::setClassName(const QString &className) @@ -264,8 +263,6 @@ QVariant AndroidServiceWidget::AndroidServiceModel::data(const QModelIndex &inde return tr("The process name must be set for a service run in an external process"); else if (index.column() == 4 && m_services[index.row()].isRunInExternalLibrary()) return tr("The library name must be set for a service run in an external library"); - else if (index.column() == 5 && !m_services[index.row()].isRunInExternalLibrary()) - return tr("The service arguments must be set for a service not run in an external library"); } else if (role == Qt::EditRole) { if (index.column() == 0) return m_services[index.row()].className(); @@ -287,10 +284,6 @@ QVariant AndroidServiceWidget::AndroidServiceModel::data(const QModelIndex &inde if (m_services[index.row()].isRunInExternalLibrary() && m_services[index.row()].externalLibraryName().isEmpty()) return Utils::Icons::WARNING.icon(); - } else if (index.column() == 5) { - if (!m_services[index.row()].isRunInExternalLibrary() - && m_services[index.row()].serviceArguments().isEmpty()) - return Utils::Icons::WARNING.icon(); } } return {}; From de38744bba8793260d82b46d718bfad2fb9c20a8 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Mon, 31 Aug 2020 13:23:28 +0200 Subject: [PATCH 21/33] Doc: Update topic on using Border Image to create buttons Change-Id: Iaea732121a5dfbad9f5791efd47f947d0c0e6045 Reviewed-by: Thomas Hartmann --- .../qmldesigner-borderimage-bindings-text.png | Bin 5220 -> 0 bytes .../qmldesigner-borderimage-bindings.png | Bin 4103 -> 2968 bytes .../qmldesigner-borderimage-bindings1.png | Bin 0 -> 2872 bytes .../qmldesigner-borderimage-connections.png | Bin 3802 -> 0 bytes .../qmldesigner-borderimage-properties.png | Bin 4146 -> 0 bytes .../images/qmldesigner-borderimage-states.png | Bin 0 -> 8667 bytes .../images/qmldesigner-borderimage-type.png | Bin 0 -> 32497 bytes .../images/qmldesigner-borderimage.png | Bin 3108 -> 5630 bytes doc/qtcreator/images/qmldesigner-button.png | Bin 2764 -> 8390 bytes .../src/qtquick/qtquick-buttons.qdoc | 301 +++++++++--------- 10 files changed, 145 insertions(+), 156 deletions(-) delete mode 100644 doc/qtcreator/images/qmldesigner-borderimage-bindings-text.png create mode 100644 doc/qtcreator/images/qmldesigner-borderimage-bindings1.png delete mode 100644 doc/qtcreator/images/qmldesigner-borderimage-connections.png delete mode 100644 doc/qtcreator/images/qmldesigner-borderimage-properties.png create mode 100644 doc/qtcreator/images/qmldesigner-borderimage-states.png create mode 100644 doc/qtcreator/images/qmldesigner-borderimage-type.png diff --git a/doc/qtcreator/images/qmldesigner-borderimage-bindings-text.png b/doc/qtcreator/images/qmldesigner-borderimage-bindings-text.png deleted file mode 100644 index 9a1e47c52db1068b4d8f945fea3cac6dbe292fb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5220 zcmeAS@N?(olHy`uVBq!ia0y~yU^Hf6VCdywW?*1=W0-rFfr067fKQ04k6(a;lZ)G; zTb`btkD8>$doAt;2Sl~+Xt2Nd_N zTr#;nBCgygC_ThKFlpz@CCit4dWQFGyVtnxZgx$-k6%$kNoHn5V0Nhch38)v9=Nlh zKBXZs@YKUklh3^gTzq@!hJ8ntccqqgn)yaoM*APV@w(vfYwwkhvsd0JS$+Hclba2* z*Z0p`6%ml$Tb`O2=o#wbvh(K4wKra@JN-0i`Rx^J)}&X@Eoz-Ksk3zZvk!r59?e?0 za^cM0o}S+5+?Mp>y4l^;*@T(TwePx9neX zdhe2?{K@gj-D|rt8nR=qzxlT2<(C!r-o&b8ND=I_dHnX_eScS>%4aCBPp z`S&r)AFkMcYR87vD_1XGxqQ;$g*6TlMGl@3MNt7y-hW+k_081n`z9>iz5C*}t;g2Z zPM$S=?aZlj`=(E8icBdgObBZ|`SS1Q7rlp`6>NEU{K}Prd8ha7*!$?r=9IS8y(^d9 zKfI)4_Ja0_v&%ZBHBD@;udk1f4E6U6N7ruNG1xBgtX_2T)TyZi6m?p(LsJ$L50&C@!{Csk#& z?3h(QwX8ffv^YPefQyT3%i=}PZ=Xu(-+i%F^&A6(ppvJHV@SoVH#4$5f)gbge&5gx zvoAaMvFDnf#iX;f%g9U$jK4XF=FZdoG!^bx*!7@gQ z&aQD0pSCH=aQ0M-v}vZFgIYMk+(N#*y>+V6b0J?Y|KksP-?Ke`eDn9-=XaN#oj36b z|4cJ!m7mU&&dqqK!}=%w4{y5D0h1jGpHx;Dr>L^`Fq*S;_%~Szf10pyO6b!GDmy3H zcWvn~X7=oIjOkf>{pFblT7`2q3R(mdB+cdgsmQT|&wBOdTD5cK4HZ8=SzB};SdtON zIrFeZ`iCoy=^vzgT{^6|b0i)XTVBd&6Hik8<8wl?%AYS>`BXv7Yg=t(>Tk6s zALcHdE;ZZg?X0bDXT)#0+Ll>#d&4I_gTMnWV?WvE*4ex(OZXP+S?Hq4Gn< zN%o}2#G8!ICIzM+(^lGXE7WD{{RgSiQq^4=uX}&Si~j3ht`U*`UE6+MwEYrIQR(e< zHS@iKh40I%yK5!hx%tFvX^^Qu@A^pvP1D+DN)|3l+k7+2ZmrtQiDzV{JlJeGNg_S^ z31fQFl`1FapP#CaywKaUabAXo$YRHI+pSYRpXHsnu}F9C)w>_rZ_hrNnqWWKLxqFC z@%jrh)x;eaH*+%c*?;J=VlFOPbwMJ1LEgXgN2iwm`DMKQ^Wk&fwtW@mJze}tI&9Am zpE@nU*KOJhH_toz`+b`F0b_>~yx)vZu9?xJk}76?Omd3bq@)tzoz;ojsX4md?w2pg z`aaq8diIIgx4)UbJ-0^rd)bAVnqU5U8HxHbq-Xu;2>HBof0{xlV>+kRd`3R2X`4m- z7{tuYgp+Q?7awE%FMjgB>7;Xy4(O!oBz?M&z_sB26iv(7#+mYyRaxN{I`Q>^S1lRS-6~$kh#W~*+`)-)0S^p zt3;1)b(7um(#&1+otUNc`e*4o{-}%oO0d|>u-!g&!scn|?->eGzAWRd(7Ed_AG&46 zRTuJFuDRRzl4>s+4G^vDp zjd5=A{QT#;^>~Z!G;3^H`{Bm1(y+z9!}Npq26Ai(JIFM%{9alA(mh_+cE8>kf7$rQ zfeo9@1**71PG2)zd2UyqV|pfYEnnpNrN5mH%)GNGC|^VUl^V=0S#8z%zVO$r+%PP~p=Zb!* zSV`KF()*X(t%OfR|8hDfvON5MNmz@`Ck5uT-4!Q9{^x9RIB+vy$+=BmR`1%(C?Pdv zv10n_-R4XUV&Y}rj88~@ID6b6cP?-9U!TqE7G%tiP05YP-;gMglQ6@2uPpbs%?UU5 zpPv@hbyIx7e(PYNBeM=~nE%mO>qn&gJOLNBH|edBzp9V_>O3R5jrqgfiuB7Tg%=-) zShb`<^xZ*4<7D|y3E_vQ{65#^5GBp`JJKMgD{-sHV)hhzr#&4jt4$4*dLWBEbUabA#3xN&2JQ0RerC1n{(bd=dI6Yox*S37O%zAlkQ!j41DATc--aKBbJ0~>+C(5-|82kFob^3GliOmO%iWzcT(iu_blX9MG zPU*B>Bl7y<;Xd0Papf=UH(Z`4!7b}6ovr!isq6jk55HFatou|exA|m2`Zb%5{fTnF zX9^qh94|ckagBMA{*xnXIv?}LzB*W6y$Hsj z|Ge2ywoBOC;l^A^ON-qTCw|VT<4o;7^Lb|C&7hyZ_uAw!wJ<$AcV@Zt`WptzH$+@D z@OMqJO}qQ$_Pcd~GNL~gx%ugzF;NmVi!=3lZ+~(9(~U=L&gImw=!vrFc79Y%e8<~& z$WB!y<})Klx!U}C0jDN@j?3M*F1*P-p>u=tfckQsONT_#R%KmSywmgN@1-BS4onlx zyeMV9S7YhK)&pV%t3sLjjjeCJUbgX%%Ndg!{YxKzyBc+7%99OY2{XOUTJsdFy{8{` z+Mn$!i?siRxaO>sn3`vuo7f|oJ6_su2-$W*moIdp)4t8Iv21CK9KXKA)?SoXjqc$t<8RF{MvBk1jcBitF(=2u>-S zxZ&C>lTzQGlV%$-Gwk8~%J-M2_q(rc=-R`N4OY(Bv>=bw;mE6WyH<8aGbRB6h401s zf9sC@jqW;Vx%%$i|Nq~o2h1+t{%TI@gV(MzEB|%5vbS>Qi1MyAxa?MH(A;9zA@!Dh z0-M|69-Rgb<4p_|e|qLJF>o34FrO&l);M$HC0j${F;BIGhF44a{vAvfb7bJz9O$4V z!MpjQ!C^MH!#M&C7Y(F&jdc=C&ag3pg%_JTwA@_7EoQ*DH1yY!7w1bFj79HD1)q)N z;uBkvZRBnd`@2JV5{vI4ori39w#^Oy>v3V7Y!=7&m`csBcQP;exc$hVeThH$R<@k` zqy?@sZn~fTI>SHieeQPGgV~4Q`s#OHk1MoV5_Hk~z=bEfW799@=3f$S|NGkYeRYwK zSWeH19}&}Pa}O^2;Msjm|94r`JJy#c-<*1@pY0>2bGqk#ZR*9AqoE!_CSK`Jxvf}N z+v#3Xww*gO=gY16wdM6JkuT5u+xq&VdR@ z{nqWc+DfZiashREQG(&dJ#JL;( zJC(Vc0vm+N=0 z%N7ta;oN-9!1k@n>X|clN2$ionlUL!y1?&bP1N*hbGsguJ-wh)bZWDG>?()dmt{o4 zC5?YXES0TZuqpP1>bjX)`XYhdQ)&=Ea=DdWe+e=R``N&z+dgey`6!HD4bJQkE zto>MVQ}TU{wehwihu);7EjnI5KeF}Q>T@$3(r>TX(x54%7&d$BpWmm~6!`!1a?!tc zXm(~#s{>o}zS`f<(zm;cYPb2GSn-5uZSm4o`CnqwV&<&xT;Un$w)x$w&&J=9O4;YV zp42c``&3O-me5SqIWy-L%wKdN!^S!!EopL)H`BQzf|=}d%R2qqTo!DxW?33`H{btv zQu~pIXPo)fY*IP4n;!YlKz{Cx&!2MC-{#r;@RVA6^RCnW*w@dO z>|0xA)MNEhQ#h*g@~_RZve);7iTYj1zWPLL?cxCG2Py`CH>+%$d9Gz1-valyie|Ge zxTVGXJ*HzNzb9dHx&XtPox+!D*2OVzURyfp)t!Qdo0o5itl#;HXa3TeTQ#L@d$&8p z{@jvU$LaTE=9wqe7dL3VlDgu%pXaT{miK3T4#&N<)6Bkj_7<1g+T?X77R_3I`HYkF zv9x|Qr{bKb?dc-|s`FuTCvX6K3T2&baryR@dx6yv{TjiT^3^U_`ou`Aicvmf7V)7t>ZM){Y zCy|w2YacT#1+ScEum0>Upnb~vOkdVMS01GqQyz-Xn;Rrsx;h|aJ16rR-?G0dcd~_Stc3y5{vw0e`=8iaXiQu2ANv69Gs~o<1(^5!m%RS|7!j;w?m(*=PAA5FncX65X z5w@#x8@;<^nNl~OzMm75Z}s!rvYR~5%Ej0I-}G$3!xY=e@4F_m@RTzhe$#H~?E2E{ zp!Mk~&f+;n%kIh-*VKb+AGFDxdlj*O)u=e(k~)E151hI=A+1y1C$O@_v)MMtkyBg!z=7;p}F3%Vh0$ z+BQjgmEH8eHL;andT*=Sw#iP;56PYV=(xZtQ90&2)^6RlN#ZANE3>&B;7xkE^n$_e zl)CV53lg*cs_kq39Ugy&^G;@x-OUX(s~$%>Kkib$ZTaQnTfxT*a{47C{$8@lTfg#? zC;yW@d99jt-}m-5Rv!<0%|FdH=|D-?Jxxh@Mn2;O_vQxo@2r?_J-PP6hL`smIWBxN zOqj7%qLuORo7-3A#YL?)l|?_er_45`^}V37_L(i~XT-hcWN*Fs@z}HJn|s0-4!@cG ztiSu=fxXFMCO4GD?2UuDceuYvxFvPzTUhq|?(;@w)!a^MnL?`%z5n;Ji=k_M$k_`_ zdGg*|_LFRN>x#EMind<;RqD&8$vd`VE?6vMn^ zDSn&sf~kR7HRapNesPB;9B|+xRz$v;(T0&)+a+Yj&S8^Z9c3a}__%^Su8*_qg#lwR`$? zz8sxy`x3Y~4wgA_Y!i0cFjt`IZHqvTdP{<}BFk+~#T$MgsSST$l$4Zg*|x3DbC&6) zx!=B(-E#l#pS^pI_9uz{Q|9W{$pK5&ug}lTeJlU&gj8g_VNlhR z^xgHp`wX{Fom@TV+f3zfEcGp+k=3eEoLUsL=H>!I#o|BiHtH+%!6(gs#@%yuw z4eht;rMgu^13%p|n>RZpww<@|wC(KJ{+5U=;ht}Wh-E?=g?7BMHn|9yN zZTQ;*avM7v+pae~Yge4gIU00*&7yTZGyD5Q?={c;U6^y}>8(qDkL)bHs%FY3G}oj5 zPtN!Jc-MZLXVzM7N1OX*T=PXD&I;_m70?lbjr)~Ehvy>w?~uJvc(v+w2~`IcgI zvc;@&iF@6)%ll50{a3jka`p0M;qId|E-&jXaj$yv-8XcL{-(R@Z-3ji&Fp8>?sxCr zxhPFkIV=9M8zlYn=;AH^}eBwn^aMdqK2J zlj(N5-j&0WKeOkpxLz5fgK_g)h8ulQ%;$Ud|G#Pl1O6L*Z*TA+5p~-SG4vL#!y++~Z%X-*4En(IWNj zot^V{^}mkI-}^bh?$MuPR@sjpAZS*5Q_q@F!*YoyQW_so7xiz(ab0TOMci zJvLk1io3Y@?bo9l_thB37rt2hO?m(36Pq_~-jlt?{*kf$>I1KmuU5yruX;U){k!AN z$?e5SyDc}>yA_|`x9@3Exv1TKIND3GwI1~x8puLA2|imlGDC< z``tZFWzrhc5~f+)v~=azgM>hy)XRxYHhLHm+XIShV7pikMNa$Dq!38yVfiH&dMlx z$CI002V1@Oe>`WtpXBx8>qqxI3VNSB_jz5+{(hN|xCX5p`xV<_?Uoi#DcJbUn&bcD zUst2g+ejSOtxwru(f{_q{iWGY?my4`_y0lrTco7a_x8_fi34Q}m?-CX83P=%GvuJ7 z17$hv2s~sAXn3}5uE3=~nGJ7SCKRyT=0va24laHFy*BM{9 zc=6(`Tfb6QD6?+czCF46Nof3!?;d53zCBrd`@3BG4d#9+e zmX(!B9ZjlsQ5N6(@Xe8ocX2wFLP<*;G=sa=&STv9qLXuF$SbcE%B)^9gLJmJn-@)= zz5BPuGzmW2pk*S_w#-G-t!-@n__8RadTqQRmwQ`X{;O)6bN`f=>AUZ|a64G0DSUh9 zw*Sl4*K2(7m}$E1ZM?fe%E&;e)4Y8C+rotl z*DDEV3g2Fw_nW_5E~a}q^Rtte=hxrV7u#;PxAxbCn9rY{w|ahF&fWKP!2~1b?X@*| zrNzOaSI?e3dv)hWwzt7$mhEqsIBxT|*-@q}tKuK`PCWjc{l#hWdO0UIanw7D-Sd0J zJg-hG@9c8sf3lZ?(hh7p-}z$ow8xKocPaI+UvK!O_5ylw$gPg zuio!hy^2^ix?UXbcG0o?xa!5P%mj~_j<@4hT?q0CdwMMPQFe9f z>06?)p=(~~GvDx&%BhYw@+jH3c6t4eh+DrV7e9Tx_3xuwds7bVch*e_a^Jrdx39VLZ$tc@ z-#>iff4({V?=@%gfxXwOzZE5T%shB&UFXUf)6*(NGSfvrJFU&SsIzWcZ2d$7x3y<> z%{%qkFh`wt+uv(<-&g;3?w=yL<*lz=&hc;O&GYa6UANu-%bhRVWB-}HILhI2>d3bf zxBnfU`+nU~cv?IDzNXq#u4>5{scrEc4jW`|+ox~ZzJG6(@)wVpb=%Y@pVYXamzq?) zWb&WWaW=Zeu(JHnBRA2ANix7bjagd znc5PM%%Frv=l}0A`?{-&?bfYZPj*Z0-o0D6)5U1X#7j#YG(TI!TX(-*C|37tZOoTL ze|awlEm;1_?MUOaY10bo4{s4UVeSKNy`r~VQ5&@upX#T(CP$n*b$Jy70|SGntDnm{ Hr-UW|v7{4H literal 4103 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 AQ2+n{ diff --git a/doc/qtcreator/images/qmldesigner-borderimage-bindings1.png b/doc/qtcreator/images/qmldesigner-borderimage-bindings1.png new file mode 100644 index 0000000000000000000000000000000000000000..46ac245c46034120fdb4c776eb0ee6cea8032ad4 GIT binary patch literal 2872 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 J%Q~loCID(csoVen diff --git a/doc/qtcreator/images/qmldesigner-borderimage-properties.png b/doc/qtcreator/images/qmldesigner-borderimage-properties.png deleted file mode 100644 index 9f8628eba1dffe3569872e5e0da62fbab6d95ddb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4146 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 diff --git a/doc/qtcreator/images/qmldesigner-borderimage-states.png b/doc/qtcreator/images/qmldesigner-borderimage-states.png new file mode 100644 index 0000000000000000000000000000000000000000..f25290fa4bf1ea4b7dd2e1a93815a1686d2ba45a GIT binary patch literal 8667 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qmldesigner-borderimage-type.png b/doc/qtcreator/images/qmldesigner-borderimage-type.png new file mode 100644 index 0000000000000000000000000000000000000000..cf287390c5a1870297333c798381921cb9983730 GIT binary patch literal 32497 zcmeAS@N?(olHy`uVBq!ia0y~yV7|b>z_^oxje&t7?bMxM1_lPs0*}aI1_r((Aj~*b zn@^g7fq}im)7O>#35PtFpnlJkl*J4T3Jjhujv*Cu-rTLMx%~C-fsf(uG)Y`Xf z%aR86rVa&>sJHw{`=p*D)(7FoqPUc)t2?OD;4%! zd)mt$y^He^m#FO3nTOl?x0e`4_0F@c-js53(zLu|qM6s$L@tRoirOXV#G%+CklVIv zskB0i0GQ*ng>{kxw<44$cVSxzb4v!VRr$L!>)rZPR8)2x+xDl4X_|h$@b0_!m~@4q znx?&fJ;|Yab=-8li+Aep*Xl(7Q`@<7r|Gu#_IBg?dp2BLpYEnEU7EV*&nfM#$1Z1W zy;JkqcgfPL_WeJ<-TwXI>-GC4Yd=Daig_4y`Fkn9PzLYGy?x-Ni4c37@@!$y`R|!&RlQw~`#F-9>#o07rM!6E!{F0LPhZixc*(6#=45pK z{@~Z`f)93mdwX+xz5V=}Po2ASzP+ytPq*29_gt^}ofG

    JKiD-gYJG`Sr`oi$7gC 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 literal 0 HcmV?d00001 diff --git a/doc/qtcreator/images/qmldesigner-borderimage.png b/doc/qtcreator/images/qmldesigner-borderimage.png index d766161fb0af15316973cb7d38a1772b404a5ee8..82878baa901606be8558aa245609804a14efb2d7 100644 GIT binary patch literal 5630 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 literal 3108 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 diff --git a/doc/qtcreator/images/qmldesigner-button.png b/doc/qtcreator/images/qmldesigner-button.png index faf511fb635aa0bfb4dd879da52d11e6309531ae..6af7d03ee396812e495f2d6a6b9fdd4608d17fcd 100644 GIT binary patch literal 8390 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 diff --git a/doc/qtcreator/src/qtquick/qtquick-buttons.qdoc b/doc/qtcreator/src/qtquick/qtquick-buttons.qdoc index 54ad29ee8a7..367843d9188 100644 --- a/doc/qtcreator/src/qtquick/qtquick-buttons.qdoc +++ b/doc/qtcreator/src/qtquick/qtquick-buttons.qdoc @@ -60,9 +60,9 @@ \uicontrol Properties view. \li Drag and drop a \uicontrol Rectangle from the \uicontrol Library to - the item in the navigator. This creates a nested item where the - item is the parent of the rectangle. Items are positioned relative - to their parents. + the item in \uicontrol Navigator. This creates a nested item where + the item is the parent of the rectangle. Items are positioned + relative to their parents. \li In the \uicontrol Properties view, modify the appearance of the rectangle: @@ -71,8 +71,8 @@ \li In the \uicontrol Color field, select the button color. - \li In the \uicontrol Radius field, use the slider to set the radius of - the rectangle and produce rounded corners for the button. + \li In the \uicontrol Radius field, set the radius of + the rectangle to produce rounded corners for the button. \li Select \uicontrol {Layout}, and then select the \inlineimage anchor-fill.png @@ -82,14 +82,15 @@ \endlist - \li Drag and drop a \uicontrol {Text} type to the item in the navigator. + \li Drag and drop a \uicontrol {Text} type to the item in + \uicontrol Navigator. \li In the \uicontrol Properties view, edit the properties of the \uicontrol Text type. \list a - \li In the \uicontrol Text field, type \b Button. + \li In the \uicontrol Text field, enter \e Button. You can select the text color in the \uicontrol {Text color} field and the font, size, and style in the @@ -109,10 +110,17 @@ \endlist + To be useful, the button type has to be created in a project. + When you work on other QML files in the project to create screens + or other components for the UI, the button type appears in the + \uicontrol {My QML Components} tab of the \uicontrol Library view. + You can use it to create button instances and modify their properties + to assign them useful IDs, change their appearance, and set the button + text for each button instance, for example. + To create a graphical button that scales beautifully without using vector graphics, use the \l [QML]{BorderImage}{Border Image} type. For more information, see \l{Creating Scalable Buttons and Borders}. - */ @@ -126,166 +134,147 @@ You can use the \l [QML]{BorderImage}{Border Image} type to display an image, such as a PNG file, as a border and a background. - Use two border images and suitable graphics to make it look like the - button is pushed down when it is clicked. One of the border images - is visible by default. You can specify that it is hidden and the other one - becomes visible when the mouse is clicked. + Use two border images and suitable graphics to change the appearance of + a button when it is clicked. You can use use \l{Adding States}{states} + to determine which image is visible depending on whether the mouse + button is pressed down. You could add more images and states to + change the appearance of the button depending on other mouse events, + such as hovered. Add a \l [QML]{MouseArea}{Mouse Area} type that covers the whole area and - emits the clicked signal (\c {item.clicked()}) when it detects a mouse - click. + reacts to mouse events. - You can add text to the button and set it up as a property. The text can - then be initialized from the outside, making the button a reusable UI - component. The font size is also available in case the default size is too - big. You can scale down the button text and use smooth text rendering for - some extra quality. + You can use states also to change the button text color and font size. For + example, you can scale the button text up or down. - \image qmldesigner-borderimage.png "Graphical button" + \image qmldesigner-borderimage-type.png "Button type in Form Editor and States" - To create a graphical button: + \section1 Creating the Button Type + + To create a button type, select \uicontrol File > + \uicontrol {New File or Project} > + \if defined(qtcreator) + \uicontrol Qt > \uicontrol {QML File (Qt Quick 2)} > + \else + \uicontrol {Qt Quick Files} > \uicontrol {Qt Quick File} > + \endif + \uicontrol Choose to create a QML file called Button.qml (for example). + + \note Types are listed in the \uicontrol Library only if the + filename begins with a capital letter. + + \section1 Constructing the Button Component + + To construct the button component: \list 1 - - \li Select \uicontrol File > \uicontrol {New File or Project} > - \if defined(qtcreator) - \uicontrol Qt > \uicontrol {QML File (Qt Quick 2)} > - \else - \uicontrol {Qt Quick Files} > \uicontrol {Qt Quick File} > - \endif - \uicontrol Choose to create a QML file called Button.qml (for - example). - - \note Types are listed in the \uicontrol Library only if the - filename begins with a capital letter. - - \li Click \uicontrol {Design} to edit the file in the + \li Click \uicontrol {Design} to edit the QML file in the \uicontrol {Form Editor}. - - \li In the \uicontrol Navigator, select \uicontrol Item and set the + \li In the \uicontrol {Assets} tab of \uicontrol Library, select + \uicontrol {Add New Assets} to copy the image files you want + to use to the project folder. + \li In the \uicontrol Navigator, select the root item and set the width (\uicontrol W) and height (\uicontrol H) of the button in the - \uicontrol Properties view. - - \li Select \uicontrol Connections > \uicontrol {Properties} > - \uicontrol Add to add properties for the item: - - \image qmldesigner-borderimage-properties.png "Properties" - + \uicontrol Properties view to match the size of the images + you plan to use. This specifies the initial size of the button + component. + \li Drag and drop two \uicontrol {Border Image} types from + \uicontrol Library to the root item in \uicontrol Navigator. + \li Drag and drop a \uicontrol Text type to the root item. + \li Drag and drop a \uicontrol {Mouse Area} to the root item in + \uicontrol Navigator. + \li Select a border image to edit the values of its properties: \list a - - \li Double-click in the columns in the view to specify a \c text - property with the type \c string and an empty value. - - \li Specify another property, \c fontSize, with the type \c int - and the value \c 10. - + \li In the \uicontrol Id field, enter an ID for the border + image. In this example, we use the ID \e inactiveButton. + \li In the \uicontrol Source field, select the image file for + the border image. For example, inactive_button.png. + \li In the \uicontrol {Layout} tab, select the + \inlineimage anchor-fill.png + (\uicontrol {Fill to Parent}) button to always make the + image the same size as its parent. This makes the button + component scalable, because the image size is bound to the + component size. + \endlist + \li Select the other border image to edit the values of its properties + similarly: + \list a + \li In the \uicontrol Id field, enter \e activeButton. + \li In the \uicontrol Source field, select the image file + for the button when it is clicked. For example, + active_button.png. + \li In the \uicontrol {Layout} tab, select the + \inlineimage anchor-fill.png + (\uicontrol {Fill to Parent}) button. + \endlist + \li Select the text item to specify font size and color in + \uicontrol Properties: + \list a + \li In the \uicontrol Color field, use + the color picker to select the font color, or enter a value + in the field. + \li In \uicontrol Font group, \uicontrol Size field, enter the + font size. + \li In the \uicontrol {Layout} tab, select + \inlineimage anchor-vertical-center.png + (\uicontrol {Vertical Center}) and + \inlineimage anchor-horizontal-center.png + (\uicontrol {Horizontal Center}) buttons to inherit the + vertical and horizontal centering from the parent. + This ensures that the button label is centered when the + component is resized. \endlist - - \li Drag and drop two \uicontrol {Border Image} types from the - \uicontrol Library to the item in the \uicontrol Navigator. - - \li Drag and drop a \uicontrol Text type to the item in the navigator. - - \li Drag and drop a \uicontrol {Mouse Area} to the item in the - navigator. - - \li In the navigator, select a border image to specify settings for it - in the \uicontrol Properties view: - - \list a - - \li Select \uicontrol Connections > \uicontrol {Bindings} - > \uicontrol Add to hide the image when the mouse button is not - pressed down. Specify the \c visible property with the - \c !mouseArea source item and \c pressed source property. - - \image qmldesigner-borderimage-bindings.png "Border image bindings" - - \li In the \uicontrol Source field, select the image file for the button, - for example button_up.png. - - \li Click \uicontrol {Layout}, and then click the - \inlineimage anchor-fill.png - (\uicontrol {Fill to Parent}) button to anchor the border image to the - \uicontrol Item. - - \endlist - - \li Select the other border image to specify similar settings for it: - - \list a - - \li In \uicontrol Bindings, specify the \c visible property - with the \c mouseArea source item and \c pressed source - property to show the image when the mouse button is pressed - down. - - \li In the \uicontrol Source field, select the image file for the button - when it is clicked, for example button_down.png. - - \li Select \uicontrol {Layout} > \uicontrol {Fill to Parent} - button to anchor the border image to the \uicontrol Item. - - \endlist - - \li Select the text to specify font size and color, and text scaling - and rendering: - - \list a - - \li In the \uicontrol Color field, use the color picker to select - the font color, or enter a value in the field. - - \li In \uicontrol Bindings, create bindings to properties: - - \image qmldesigner-borderimage-bindings-text.png "Text bindings" - - \list - - \li Set the source property of the \c text property as - \c text and the source item as \c parent. - - \li Set the source property of the \c font.pixelSize as - \c fontSize and the source item as \c parent. - - \li Set the source property of \c scale as - \c {if (!mouseArea} and the source item as - \c {pressed) { 1 } else { 0.95 }}. - - \endlist - - \li Click \uicontrol {Layout}, and then click the - \inlineimage anchor-vertical-center.png - (\uicontrol {Vertical Center}) and - \inlineimage anchor-horizontal-center.png - (\uicontrol {Horizontal Center}) buttons to inherit the - vertical and horizontal centering from the parent. - - \endlist - - \li Select \uicontrol mouseArea in the navigator and then select - \uicontrol Connections > \uicontrol Add to set \c item.clicked() - as the value of the \c onClicked signal handler. - - \image qmldesigner-borderimage-connections.png "Item connections" - - \li In the \uicontrol {Text Editor}, specify the \c clicked signal for - the Item: - - \qml - Item { - id: item - property string text: "" - property int fontSize: 10 - - signal clicked - } - \endqml - \endlist - \note To test the button, add it to a Qt Quick Application or Qt - Quick UI project and run the application. + \section1 Using States to Change Component Property Values + \list 1 + \li In the \uicontrol States view, select \inlineimage plus.png + twice to create two new states. + \image qmldesigner-borderimage-states.png "Active and inactive states" + \li Select \uicontrol State1. + \li Change the state name to \e active. + \li Select \inlineimage icons/action-icon.png + , and then select \uicontrol {Set when Condition} to determine + when the state should be applied. + \li In the \uicontrol {Binding Editor}, select the \c mouseArea + type and the \c pressed signal to specify that the state is + applied when the mouse button is pressed down. + \image qmldesigner-borderimage-bindings.png "Active state when condition" + \li Select the text item in \uicontrol Navigator to specify that the + text size is scaled up when the button is pressed down. + \li In \uicontrol Properties, select the \uicontrol Advanced tab, and + increase the value of the \uicontrol Scale property. + \li Select \e inactiveButton in \uicontrol Navigator to hide + it in the \e active state by changing the value of its + \uicontrol Visibility property in \uicontrol Properties. + \li Select \uicontrol State2. + \li Change the state name to \e inactive. + \li Set the when condition for the state to \c !mouseArea.pressed to + specify that the state is applied when the mouse button is not + pressed down. + \image qmldesigner-borderimage-bindings1.png "Inactive state when condition" + it in the \e inactive state by changing the value of its + \uicontrol Visibility property in \uicontrol Properties. + \li Press \key {Ctrl+S} to save the button. + \li Select the \inlineimage live_preview.png + (\uicontrol {Show Live Preview}) button to check how the + button behaves when you click it. You can drag the preview + window borders to see what happens when you resize the + component. + \endlist + + To be useful, the button type has to be created in a project. + When you work on other QML files in the project to create screens + or other components for the UI, the button type appears in the + \uicontrol {My QML Components} tab of the \uicontrol Library view. + You can drag and drop it to \uicontrol {Form Editor} or + \uicontrol Navigator to create button instances and modify the values + of their properties to assign them useful IDs, change their appearance, + and set the button text for each button instance, for example. + + For more information about positioning buttons on screens, see + \l{Positioning Items in UIs}. + + \image qmldesigner-borderimage.png "Button preview as part of a screen" */ - From 8259c1e0e7d174826756b59ded169442c78375a2 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 2 Sep 2020 09:34:18 +0200 Subject: [PATCH 22/33] QmlDesigner: Disable FlowTags for MCU Change-Id: I708dad46d92c48991a603819313ce148eccc3b54 Reviewed-by: Aleksei German Reviewed-by: Thomas Hartmann --- .../components/importmanager/importswidget.cpp | 10 +++++----- .../components/itemlibrary/itemlibrarywidget.cpp | 12 ++++++++---- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/plugins/qmldesigner/components/importmanager/importswidget.cpp b/src/plugins/qmldesigner/components/importmanager/importswidget.cpp index 4d8f134d903..d69511acd67 100644 --- a/src/plugins/qmldesigner/components/importmanager/importswidget.cpp +++ b/src/plugins/qmldesigner/components/importmanager/importswidget.cpp @@ -99,15 +99,15 @@ void ImportsWidget::setPossibleImports(QList possibleImports) QList filteredImports; - const QStringList mcuWhiteList = {"QtQuick", "QtQuick.Controls", "QtQuick.Timeline"}; - const QStringList mcuBlackList = {"FlowView"}; + const QStringList mcuPostiveList = {"QtQuick", "QtQuick.Controls", "QtQuick.Timeline"}; + const QStringList mcuNegativeList = {"FlowView"}; if (isQtForMCUs) { filteredImports = Utils::filtered(possibleImports, - [mcuWhiteList, mcuBlackList](const Import &import) { - return (mcuWhiteList.contains(import.url()) + [mcuPostiveList, mcuNegativeList](const Import &import) { + return (mcuPostiveList.contains(import.url()) || !import.url().startsWith("Qt")) - && !mcuBlackList.contains(import.url()); + && !mcuNegativeList.contains(import.url()); }); } else { filteredImports = possibleImports; diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index ea81fb4fcfa..8526e8a1f51 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -351,6 +351,8 @@ void ItemLibraryWidget::reloadQmlSource() void ItemLibraryWidget::setupImportTagWidget() { QTC_ASSERT(m_model, return); + const DesignDocument *designDocument = QmlDesignerPlugin::instance()->currentDesignDocument(); + const bool isQtForMCUs = designDocument && designDocument->isQtForMCUsProject(); const QStringList imports = m_model->metaInfo().itemLibraryInfo()->showTagsForImports(); @@ -373,11 +375,13 @@ void ItemLibraryWidget::setupImportTagWidget() return button; }; - for (const QString &importPath : imports) { - const Import import = Import::createLibraryImport(importPath); - if (!m_model->hasImport(import, true, true) + if (!isQtForMCUs) { + for (const QString &importPath : imports) { + const Import import = Import::createLibraryImport(importPath); + if (!m_model->hasImport(import, true, true) && m_model->isImportPossible(import, true, true)) - flowLayout->addWidget(createButton(importPath)); + flowLayout->addWidget(createButton(importPath)); + } } } From 49902aecd372b618dc1432cb339464da07e60b7b Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 2 Sep 2020 12:18:07 +0200 Subject: [PATCH 23/33] QmlDesigner: Add support for .hdr images Task-number: QDS-2128 Change-Id: I840d808adb68a7439c0d1ea06f71e20ad53c00e9 Reviewed-by: Thomas Hartmann --- .../components/componentcore/designeractionmanager.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp index feff075582a..d9cc1521816 100644 --- a/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp +++ b/src/plugins/qmldesigner/components/componentcore/designeractionmanager.cpp @@ -1297,6 +1297,9 @@ void DesignerActionManager::createDefaultAddResourceHandler() registerAddResourceHandler(AddResourceHandler(ComponentCoreConstants::addImagesDisplayString, "*.svg", ModelNodeOperations::addImageToProject)); + registerAddResourceHandler(AddResourceHandler(ComponentCoreConstants::addImagesDisplayString, + "*.hdr", + ModelNodeOperations::addImageToProject)); registerAddResourceHandler(AddResourceHandler(ComponentCoreConstants::addFontsDisplayString, "*.ttf", From 831a709857ddb3a5f48e17f65e60a81188bbfa6f Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 2 Sep 2020 12:34:19 +0200 Subject: [PATCH 24/33] QmlDesigner: Add support for .hdr to UrlChooser Task-number: QDS-2128 Change-Id: I944a42d36357cbddae6d5cc30178723e62e0656f Reviewed-by: Thomas Hartmann --- .../imports/HelperWidgets/UrlChooser.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml index dcb0cc58b96..f505d9fc50c 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/UrlChooser.qml @@ -34,7 +34,7 @@ RowLayout { property variant backendValue property color textColor: colorLogic.highlight ? colorLogic.textColor : "white" - property string filter: "*.png *.gif *.jpg *.bmp *.jpeg *.svg *.pbm *.pgm *.ppm *.xbm *.xpm" + property string filter: "*.png *.gif *.jpg *.bmp *.jpeg *.svg *.pbm *.pgm *.ppm *.xbm *.xpm *.hdr" FileResourcesModel { id: fileModel From 32dfddbf7896c0527f23322f00de467fdc0bf3b0 Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Wed, 2 Sep 2020 13:23:38 +0200 Subject: [PATCH 25/33] Doc: Stop QDoc from automatically generating a broken link Fixes: QDS-2714 Change-Id: I9ae35a4a7436c743e448c0167c21f1080b8afe79 Reviewed-by: Asmo Saarela Reviewed-by: Paul Wicking --- doc/qtdesignstudio/src/qtdesignstudio-platforms.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/qtdesignstudio/src/qtdesignstudio-platforms.qdoc b/doc/qtdesignstudio/src/qtdesignstudio-platforms.qdoc index 7332df5a3fb..ae1c7147a12 100644 --- a/doc/qtdesignstudio/src/qtdesignstudio-platforms.qdoc +++ b/doc/qtdesignstudio/src/qtdesignstudio-platforms.qdoc @@ -38,7 +38,7 @@ \QDS is available in binary packages for the following operating systems: \list - \li \macos 10.13 and 10.14.x + \li \macOS 10.13 and 10.14.x \li Ubuntu Linux 18.04 \li Windows 10 \endlist From 6d519554513bd0fa711b403681611f0b7561de12 Mon Sep 17 00:00:00 2001 From: Henning Gruendl Date: Wed, 2 Sep 2020 13:53:10 +0200 Subject: [PATCH 26/33] QmlDesigner: Fix mobile scroll wizard template Change-Id: I00d0467ce4ed28d0135e16c6ae9802ed66a1ff7d Reviewed-by: Thomas Hartmann --- .../wizards/projects/qtquickapplication/scroll/main.qml.tpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl b/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl index 0ee9d190834..88f3909590c 100644 --- a/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl +++ b/share/qtcreator/templates/wizards/projects/qtquickapplication/scroll/main.qml.tpl @@ -17,11 +17,12 @@ ApplicationWindow { anchors.fill: parent ListView { + id: listView width: parent.width model: 20 delegate: ItemDelegate { text: "Item " + (index + 1) - width: parent.width + width: listView.width } } } From a408bcfd3d05a071fb546c5986643ea2f0332ea2 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Sat, 29 Aug 2020 23:34:18 +0300 Subject: [PATCH 27/33] Clang: Add conditions for adding exceptions flag For GCC it can be deduced from the compiler flags, so no correction is needed. For MSVC it can be deduced from the detected defines. Amends 26693e82126de15145a04c3428a10f6c15120532. Change-Id: Ie4850f328a2afdb3e5158c58f8c30a2644d9c592 Reviewed-by: Christian Kandeler --- .../cpptools/compileroptionsbuilder.cpp | 14 ++++++- src/plugins/cpptools/compileroptionsbuilder.h | 1 + .../unittest/compileroptionsbuilder-test.cpp | 40 ++++++++++++++++++- 3 files changed, 52 insertions(+), 3 deletions(-) diff --git a/src/plugins/cpptools/compileroptionsbuilder.cpp b/src/plugins/cpptools/compileroptionsbuilder.cpp index 0192386ddbe..49457718a78 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.cpp +++ b/src/plugins/cpptools/compileroptionsbuilder.cpp @@ -35,6 +35,7 @@ #include #include +#include #include #include #include @@ -137,7 +138,7 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind, addTargetTriple(); updateFileLanguage(fileKind); addLanguageVersionAndExtensions(); - enableExceptions(); + addMsvcExceptions(); addPrecompiledHeaderOptions(usePrecompiledHeaders); addProjectConfigFileInclude(); @@ -273,6 +274,17 @@ void CompilerOptionsBuilder::addCompilerFlags() add(m_compilerFlags.flags); } +void CompilerOptionsBuilder::addMsvcExceptions() +{ + if (!m_clStyle) + return; + if (Utils::anyOf(m_projectPart.toolChainMacros, [](const ProjectExplorer::Macro ¯o) { + return macro.key == "_CPPUNWIND"; + })) { + enableExceptions(); + } +} + void CompilerOptionsBuilder::enableExceptions() { // With "--driver-mode=cl" exceptions are disabled (clang 8). diff --git a/src/plugins/cpptools/compileroptionsbuilder.h b/src/plugins/cpptools/compileroptionsbuilder.h index ee7e3733129..356adaed1cd 100644 --- a/src/plugins/cpptools/compileroptionsbuilder.h +++ b/src/plugins/cpptools/compileroptionsbuilder.h @@ -69,6 +69,7 @@ public: void addExtraCodeModelFlags(); void addPicIfCompilerFlagsContainsIt(); void addCompilerFlags(); + void addMsvcExceptions(); void enableExceptions(); void insertWrappedQtHeaders(); void insertWrappedMingwHeaders(); diff --git a/tests/unit/unittest/compileroptionsbuilder-test.cpp b/tests/unit/unittest/compileroptionsbuilder-test.cpp index 76fe2be0662..1376bed6b88 100644 --- a/tests/unit/unittest/compileroptionsbuilder-test.cpp +++ b/tests/unit/unittest/compileroptionsbuilder-test.cpp @@ -650,8 +650,6 @@ TEST_F(CompilerOptionsBuilder, BuildAllOptions) "-x", "c++", "-std=c++17", - "-fcxx-exceptions", - "-fexceptions", "-DprojectFoo=projectBar", "-I", IsPartOfHeader("wrappedQtHeaders"), "-I", IsPartOfHeader(toNative("wrappedQtHeaders/QtCore").toStdString()), @@ -674,6 +672,44 @@ TEST_F(CompilerOptionsBuilder, BuildAllOptionsCl) compilerOptionsBuilder.build(ProjectFile::CXXSource, CppTools::UsePrecompiledHeaders::No); + ASSERT_THAT(compilerOptionsBuilder.options(), + ElementsAre("-nostdinc", + "-nostdinc++", + "--driver-mode=cl", + "/Zs", + "-m64", + "--target=x86_64-apple-darwin10", + "/TP", + "/std:c++17", + "-fms-compatibility-version=19.00", + "-DprojectFoo=projectBar", + "-D__FUNCSIG__=\"\"", + "-D__FUNCTION__=\"\"", + "-D__FUNCDNAME__=\"\"", + "-I", IsPartOfHeader("wrappedQtHeaders"), + "-I", IsPartOfHeader(toNative("wrappedQtHeaders/QtCore").toStdString()), + "-I", toNative("/tmp/path"), + "-I", toNative("/tmp/system_path"), + "/clang:-isystem", + "/clang:" + toNative(CLANG_RESOURCE_DIR ""), + "/clang:-isystem", + "/clang:" + toNative("/tmp/builtin_path"))); +} + +TEST_F(CompilerOptionsBuilder, BuildAllOptionsClWithExceptions) +{ + projectPart.toolchainType = ProjectExplorer::Constants::MSVC_TOOLCHAIN_TYPEID; + projectPart.toolChainMacros.append(ProjectExplorer::Macro{"_CPPUNWIND", "1"}); + CppTools::CompilerOptionsBuilder compilerOptionsBuilder(projectPart, + CppTools::UseSystemHeader::No, + CppTools::UseTweakedHeaderPaths::Yes, + CppTools::UseLanguageDefines::No, + CppTools::UseBuildSystemWarnings::No, + "dummy_version", + ""); + + compilerOptionsBuilder.build(ProjectFile::CXXSource, CppTools::UsePrecompiledHeaders::No); + ASSERT_THAT(compilerOptionsBuilder.options(), ElementsAre("-nostdinc", "-nostdinc++", From 5355aa7a3706790079f4681dd0f34bc77802f3b6 Mon Sep 17 00:00:00 2001 From: Christian Stenger Date: Wed, 2 Sep 2020 15:30:13 +0200 Subject: [PATCH 28/33] Unittest: Fix crash in Linux Change-Id: I1e8dc10bd9f0f9d11b0f18716e284ffadef7c6c5 Reviewed-by: Christian Kandeler --- tests/unit/unittest/stringcache-test.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/unit/unittest/stringcache-test.cpp b/tests/unit/unittest/stringcache-test.cpp index 8eecd92c449..5a2b1d404dc 100644 --- a/tests/unit/unittest/stringcache-test.cpp +++ b/tests/unit/unittest/stringcache-test.cpp @@ -65,6 +65,12 @@ class StringCache : public testing::Test protected: void SetUp() { + mockStorageFetchDirectyId = [&](Utils::SmallStringView string) { + return mockStorage.fetchDirectoryId(string); + }; + mockStorageFetchDirectyPath = [&](int id) { + return mockStorage.fetchDirectoryPath(id); + }; std::sort(filePaths.begin(), filePaths.end(), [](auto &f, auto &l) { return compare(f, l) < 0; }); @@ -82,12 +88,8 @@ protected: protected: NiceMock mockDatabase; NiceMock mockStorage{mockDatabase}; - StorageIdFunction mockStorageFetchDirectyId = [&](Utils::SmallStringView string) { - return mockStorage.fetchDirectoryId(string); - }; - StorageStringFunction mockStorageFetchDirectyPath = [&](int id) { - return mockStorage.fetchDirectoryPath(id); - }; + StorageIdFunction mockStorageFetchDirectyId; + StorageStringFunction mockStorageFetchDirectyPath; Cache cache; typename Cache::MutexType &mockMutex = cache.mutex(); Utils::PathString filePath1{"/file/pathOne"}; From d6da7745faffe25b8261e96ae0875b25d9799a2b Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Wed, 2 Sep 2020 17:51:50 +0200 Subject: [PATCH 29/33] QmlDesigner: Remove old properties Removed and replaced old properties for ListView and GridView Change-Id: Ifbf2aae2958c5f67616d8f6a4acad6646b34c18c Reviewed-by: Thomas Hartmann Reviewed-by: Leena Miettinen --- .../qml-type-descriptions/builtins.qmltypes | 8 +++--- .../QtQuick/GridViewSpecifics.qml | 16 ----------- .../QtQuick/ListViewSpecifics.qml | 28 +++++++++++++++---- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/share/qtcreator/qml-type-descriptions/builtins.qmltypes b/share/qtcreator/qml-type-descriptions/builtins.qmltypes index a7c009027c9..c0b5400318e 100644 --- a/share/qtcreator/qml-type-descriptions/builtins.qmltypes +++ b/share/qtcreator/qml-type-descriptions/builtins.qmltypes @@ -1425,9 +1425,9 @@ Module { Property { name: "highlight"; type: "QDeclarativeComponent"; isPointer: true } Property { name: "highlightItem"; type: "QDeclarativeItem"; isReadonly: true; isPointer: true } Property { name: "highlightFollowsCurrentItem"; type: "bool" } - Property { name: "highlightMoveSpeed"; type: "qreal" } + Property { name: "highlightMoveVelocity"; type: "qreal" } Property { name: "highlightMoveDuration"; type: "int" } - Property { name: "highlightResizeSpeed"; type: "qreal" } + Property { name: "highlightResizeVelocity"; type: "qreal" } Property { name: "highlightResizeDuration"; type: "int" } Property { name: "preferredHighlightBegin"; type: "qreal" } Property { name: "preferredHighlightEnd"; type: "qreal" } @@ -1448,9 +1448,9 @@ Module { Signal { name: "layoutDirectionChanged"; revision: 1 } Signal { name: "currentIndexChanged" } Signal { name: "currentSectionChanged" } - Signal { name: "highlightMoveSpeedChanged" } + Signal { name: "highlightMoveVelocityChanged" } Signal { name: "highlightMoveDurationChanged" } - Signal { name: "highlightResizeSpeedChanged" } + Signal { name: "highlightResizeVelocityChanged" } Signal { name: "highlightResizeDurationChanged" } Signal { name: "highlightChanged" } Signal { name: "highlightItemChanged" } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridViewSpecifics.qml index 4038097b423..dd032acc12f 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridViewSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/GridViewSpecifics.qml @@ -197,22 +197,6 @@ Column { } } - Label { - text: qsTr("Move speed") - tooltip: qsTr("Move animation speed of the highlight delegate.") - } - - SectionLayout { - SpinBox { - backendValue: backendValues.highlightMoveSpeed - minimumValue: 0 - maximumValue: 1000 - decimals: 0 - } - ExpandingSpacer { - } - } - Label { text: qsTr("Preferred begin") tooltip: qsTr("Preferred highlight begin - must be smaller than Preferred end.") diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml index 058cbb724a3..d9df5e09b47 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml @@ -173,7 +173,7 @@ Column { SectionLayout { SpinBox { backendValue: backendValues.highlightMoveDuration - minimumValue: 0 + minimumValue: -1 maximumValue: 1000 decimals: 0 } @@ -182,14 +182,14 @@ Column { } Label { - text: qsTr("Move speed") - tooltip: qsTr("Move animation speed of the highlight delegate.") + text: qsTr("Move velocity") + tooltip: qsTr("Move animation velocity of the highlight delegate.") } SectionLayout { SpinBox { - backendValue: backendValues.highlightMoveSpeed - minimumValue: 0 + backendValue: backendValues.highlightMoveVelocity + minimumValue: -1 maximumValue: 1000 decimals: 0 } @@ -205,7 +205,23 @@ Column { SectionLayout { SpinBox { backendValue: backendValues.highlightResizeDuration - minimumValue: 0 + minimumValue: -1 + maximumValue: 1000 + decimals: 0 + } + ExpandingSpacer { + } + } + + Label { + text: qsTr("Resize velocity") + tooltip: qsTr("Resize animation velocity of the highlight delegate.") + } + + SectionLayout { + SpinBox { + backendValue: backendValues.highlightResizeVelocity + minimumValue: -1 maximumValue: 1000 decimals: 0 } From bfd8be99bef12b256fe54b97aa5fdfaf3e4d901d Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 1 Sep 2020 11:09:55 +0200 Subject: [PATCH 30/33] UnitTests: Fix unit test build Guard clang include. Change-Id: Ia72b40fa787918f47508049b045a21edf976d93a Reviewed-by: Christian Kandeler --- tests/unit/unittest/conditionally-disabled-tests.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/unit/unittest/conditionally-disabled-tests.h b/tests/unit/unittest/conditionally-disabled-tests.h index 91b2541fe9d..79b24e3d207 100644 --- a/tests/unit/unittest/conditionally-disabled-tests.h +++ b/tests/unit/unittest/conditionally-disabled-tests.h @@ -25,6 +25,7 @@ #include +#ifdef CLANG_UNIT_TESTS #include #if CINDEX_VERSION_MAJOR == 0 && CINDEX_VERSION_MINOR == 59 @@ -32,6 +33,7 @@ #else # define DISABLED_FOR_CLANG_10(x) x #endif +#endif #ifdef Q_OS_WIN # define DISABLED_ON_WINDOWS(x) DISABLED_##x From fd32b222ee1824ec610469fa411c3b914fca596d Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Fri, 28 Aug 2020 11:20:41 +0300 Subject: [PATCH 31/33] LLDB: Escape strings for correct parsing Sample broken output: >result={token="9",lldbid="1",valid="1",hitcount="0",threadid="0",oneshot="0", condition="",enabled="1",valid="1",ignorecount="0",locations=[ {locid="1",function="foo()",enabled="1",resolved="0",valid="1",ignorecount="0", file="F:\Projects\test\main.cpp",line="5",addr="4199979"},], file="F:\Projects\test\main.cpp",line="5"}@ When parsed as GdbMi value, the strings are expected to be escaped. Change-Id: Idb923516c1cf6e25b970ad08fae977bdf1045b4b Reviewed-by: Christian Stenger --- share/qtcreator/debugger/lldbbridge.py | 106 ++++++++++++++----------- 1 file changed, 59 insertions(+), 47 deletions(-) diff --git a/share/qtcreator/debugger/lldbbridge.py b/share/qtcreator/debugger/lldbbridge.py index 41d2ebf7f82..31d180898a9 100644 --- a/share/qtcreator/debugger/lldbbridge.py +++ b/share/qtcreator/debugger/lldbbridge.py @@ -56,10 +56,19 @@ from dumper import DumperBase, SubItem, Children, TopLevelItem ####################################################################### qqWatchpointOffset = 10000 +_c_str_trans = None +if sys.version_info[0] >= 3: + _c_str_trans = str.maketrans({"\n": "\\n", '"':'\\"', "\\":"\\\\"}) + +def toCString(s): + if _c_str_trans is not None: + return str(s).translate(_c_str_trans) + else: + return str(s).replace('\\', '\\\\').replace('\n', '\\n').replace('"', '\\"') def fileNameAsString(file): - return str(file) if file.IsValid() else '' + return toCString(file) if file.IsValid() else '' def check(exp): @@ -755,9 +764,9 @@ class Dumper(DumperBase): self.debugger.GetCommandInterpreter().HandleCommand(command, result) success = result.Succeeded() if success: - self.report('output="%s"' % result.GetOutput()) + self.report('output="%s"' % toCString(result.GetOutput())) else: - self.report('error="%s"' % result.GetError()) + self.report('error="%s"' % toCString(result.GetError())) def canonicalTypeName(self, name): return re.sub('\\bconst\\b', '', name).replace(' ', '') @@ -921,7 +930,7 @@ class Dumper(DumperBase): state = 1 if self.target.IsValid() else 0 self.reportResult('success="%s",msg="%s",exe="%s"' - % (state, error, self.executable_), args) + % (state, toCString(error), toCString(self.executable_)), args) def runEngine(self, args): """ Set up SBProcess instance """ @@ -1033,16 +1042,16 @@ class Dumper(DumperBase): def describeError(self, error): desc = lldb.SBStream() error.GetDescription(desc) - result = 'success="%s",' % int(error.Success()) + result = 'success="%d",' % int(error.Success()) result += 'error={type="%s"' % error.GetType() if error.GetType(): result += ',status="%s"' % error.GetCString() result += ',code="%s"' % error.GetError() - result += ',desc="%s"}' % desc.GetData() + result += ',desc="%s"}' % toCString(desc.GetData()) return result def describeStatus(self, status): - return 'status="%s",' % status + return 'status="%s",' % toCString(status) def describeLocation(self, frame): if int(frame.pc) == 0xffffffffffffffff: @@ -1085,10 +1094,10 @@ class Dumper(DumperBase): reason = thread.GetStopReason() result += '{id="%d"' % thread.GetThreadID() result += ',index="%s"' % i - result += ',details="%s"' % thread.GetQueueName() + result += ',details="%s"' % toCString(thread.GetQueueName()) result += ',stop-reason="%s"' % self.stopReason(thread.GetStopReason()) result += ',state="%s"' % state - result += ',name="%s"' % thread.GetName() + result += ',name="%s"' % toCString(thread.GetName()) result += ',frame={' frame = thread.GetFrameAtIndex(0) result += 'pc="0x%x"' % frame.pc @@ -1126,7 +1135,7 @@ class Dumper(DumperBase): limit = args.get('stacklimit', -1) (n, isLimited) = (limit, True) if limit > 0 else (thread.GetNumFrames(), False) self.currentCallContext = None - result = 'stack={current-thread="%s"' % thread.GetThreadID() + result = 'stack={current-thread="%d"' % thread.GetThreadID() result += ',frames=[' for i in range(n): frame = thread.GetFrameAtIndex(i) @@ -1148,7 +1157,7 @@ class Dumper(DumperBase): interpreterStack = self.extractInterpreterStack() for interpreterFrame in interpreterStack.get('frames', []): function = interpreterFrame.get('function', '') - fileName = interpreterFrame.get('file', '') + fileName = toCString(interpreterFrame.get('file', '')) language = interpreterFrame.get('language', '') lineNumber = interpreterFrame.get('line', 0) context = interpreterFrame.get('context', 0) @@ -1162,7 +1171,7 @@ class Dumper(DumperBase): result += ',address="0x%x"' % addr result += ',function="%s"' % functionName result += ',line="%d"' % lineNumber - result += ',module="%s"' % module + result += ',module="%s"' % toCString(module) result += ',file="%s"},' % fileName result += ']' result += ',hasmore="%d"' % isLimited @@ -1202,7 +1211,7 @@ class Dumper(DumperBase): return self.target.FindFirstGlobalVariable(symbolName) def warn(self, msg): - self.put('{name="%s",value="",type="",numchild="0"},' % msg) + self.put('{name="%s",value="",type="",numchild="0"},' % toCString(msg)) def fetchVariables(self, args): (ok, res) = self.tryFetchInterpreterVariables(args) @@ -1314,15 +1323,15 @@ class Dumper(DumperBase): interp.HandleCommand("register write %s %s" % (name, value), result) success = result.Succeeded() if success: - self.reportResult('output="%s"' % result.GetOutput(), args) + self.reportResult('output="%s"' % toCString(result.GetOutput()), args) return # Try again with register write xmm0 "{0x00 ... 0x02}" syntax: vec = ' '.join(["0x" + value[i:i + 2] for i in range(2, len(value), 2)]) success = interp.HandleCommand('register write %s "{%s}"' % (name, vec), result) if success: - self.reportResult('output="%s"' % result.GetOutput(), args) + self.reportResult('output="%s"' % toCString(result.GetOutput()), args) else: - self.reportResult('error="%s"' % result.GetError(), args) + self.reportResult('error="%s"' % toCString(result.GetError()), args) def report(self, stuff): with self.outputLock: @@ -1386,14 +1395,16 @@ class Dumper(DumperBase): skipEventReporting = eventType in ( lldb.SBProcess.eBroadcastBitSTDOUT, lldb.SBProcess.eBroadcastBitSTDERR) self.report('event={type="%s",data="%s",msg="%s",flavor="%s",state="%s",bp="%s"}' - % (eventType, out.GetData(), msg, flavor, self.stateName(state), bp)) + % (eventType, toCString(out.GetData()), + toCString(msg), flavor, self.stateName(state), bp)) if state == lldb.eStateExited: self.eventState = state if not self.isShuttingDown_: self.reportState("inferiorexited") - self.report('exited={status="%s",desc="%s"}' - % (self.process.GetExitStatus(), self.process.GetExitDescription())) + self.report('exited={status="%d",desc="%s"}' + % (self.process.GetExitStatus(), + toCString(self.process.GetExitDescription()))) elif state != self.eventState and not skipEventReporting: self.eventState = state if state == lldb.eStateStopped: @@ -1457,17 +1468,17 @@ class Dumper(DumperBase): result = 'lldbid="%s"' % (qqWatchpointOffset + bp.GetID()) else: result = 'lldbid="%s"' % bp.GetID() - result += ',valid="%s"' % (1 if bp.IsValid() else 0) - result += ',hitcount="%s"' % bp.GetHitCount() + result += ',valid="%d"' % (1 if bp.IsValid() else 0) + result += ',hitcount="%d"' % bp.GetHitCount() if bp.IsValid(): if isinstance(bp, lldb.SBBreakpoint): - result += ',threadid="%s"' % bp.GetThreadID() - result += ',oneshot="%s"' % (1 if bp.IsOneShot() else 0) + result += ',threadid="%d"' % bp.GetThreadID() + result += ',oneshot="%d"' % (1 if bp.IsOneShot() else 0) cond = bp.GetCondition() result += ',condition="%s"' % self.hexencode("" if cond is None else cond) - result += ',enabled="%s"' % (1 if bp.IsEnabled() else 0) - result += ',valid="%s"' % (1 if bp.IsValid() else 0) - result += ',ignorecount="%s"' % bp.GetIgnoreCount() + result += ',enabled="%d"' % (1 if bp.IsEnabled() else 0) + result += ',valid="%d"' % (1 if bp.IsValid() else 0) + result += ',ignorecount="%d"' % bp.GetIgnoreCount() if bp.IsValid() and isinstance(bp, lldb.SBBreakpoint): result += ',locations=[' lineEntry = None @@ -1475,19 +1486,19 @@ class Dumper(DumperBase): loc = bp.GetLocationAtIndex(i) addr = loc.GetAddress() lineEntry = addr.GetLineEntry() - result += '{locid="%s"' % loc.GetID() + result += '{locid="%d"' % loc.GetID() result += ',function="%s"' % addr.GetFunction().GetName() - result += ',enabled="%s"' % (1 if loc.IsEnabled() else 0) - result += ',resolved="%s"' % (1 if loc.IsResolved() else 0) - result += ',valid="%s"' % (1 if loc.IsValid() else 0) - result += ',ignorecount="%s"' % loc.GetIgnoreCount() - result += ',file="%s"' % lineEntry.GetFileSpec() - result += ',line="%s"' % lineEntry.GetLine() + result += ',enabled="%d"' % (1 if loc.IsEnabled() else 0) + result += ',resolved="%d"' % (1 if loc.IsResolved() else 0) + result += ',valid="%d"' % (1 if loc.IsValid() else 0) + result += ',ignorecount="%d"' % loc.GetIgnoreCount() + result += ',file="%s"' % toCString(lineEntry.GetFileSpec()) + result += ',line="%d"' % lineEntry.GetLine() result += ',addr="%s"},' % addr.GetFileAddress() result += ']' if lineEntry is not None: - result += ',file="%s"' % lineEntry.GetFileSpec() - result += ',line="%s"' % lineEntry.GetLine() + result += ',file="%s"' % toCString(lineEntry.GetFileSpec()) + result += ',line="%d"' % lineEntry.GetLine() return result def createBreakpointAtMain(self): @@ -1590,7 +1601,7 @@ class Dumper(DumperBase): loc.SetEnabled(bool(args['enabled'])) enabled = loc.IsEnabled() res = True - self.reportResult('success="%s",enabled="%s",locid="%s"' + self.reportResult('success="%d",enabled="%d",locid="%d"' % (int(res), int(enabled), locId), args) def removeBreakpoint(self, args): @@ -1598,21 +1609,21 @@ class Dumper(DumperBase): if lldbId > qqWatchpointOffset: res = self.target.DeleteWatchpoint(lldbId - qqWatchpointOffset) res = self.target.BreakpointDelete(lldbId) - self.reportResult('success="%s"' % int(res), args) + self.reportResult('success="%d"' % int(res), args) def fetchModules(self, args): result = 'modules=[' for i in range(self.target.GetNumModules()): module = self.target.GetModuleAtIndex(i) - result += '{file="%s"' % module.file.fullpath - result += ',name="%s"' % module.file.basename - result += ',addrsize="%s"' % module.addr_size + result += '{file="%s"' % toCString(module.file.fullpath) + result += ',name="%s"' % toCString(module.file.basename) + result += ',addrsize="%d"' % module.addr_size result += ',triple="%s"' % module.triple #result += ',sections={' #for section in module.sections: # result += '[name="%s"' % section.name # result += ',addr="%s"' % section.addr - # result += ',size="%s"],' % section.size + # result += ',size="%d"],' % section.size #result += '}' result += '},' result += ']' @@ -1636,7 +1647,7 @@ class Dumper(DumperBase): result += ',name="%s"' % symbol.GetName() result += ',address="0x%x"' % startAddress result += ',demangled="%s"' % symbol.GetMangledName() - result += ',size="%s"' % (endAddress - startAddress) + result += ',size="%d"' % (endAddress - startAddress) result += '},' result += ']}' self.reportResult(result, args) @@ -1726,7 +1737,8 @@ class Dumper(DumperBase): result = lldb.SBCommandReturnObject() self.debugger.GetCommandInterpreter().HandleCommand('break list', result) self.report('success="%d",output="%s",error="%s"' - % (result.Succeeded(), result.GetOutput(), result.GetError())) + % (result.Succeeded(), toCString(result.GetOutput()), + toCString(result.GetError()))) def activateFrame(self, args): self.reportToken(args) @@ -1751,8 +1763,8 @@ class Dumper(DumperBase): command = args['command'] self.debugger.GetCommandInterpreter().HandleCommand(command, result) success = result.Succeeded() - output = result.GetOutput() - error = str(result.GetError()) + output = toCString(result.GetOutput()) + error = toCString(str(result.GetError())) self.report('success="%d",output="%s",error="%s"' % (success, output, error)) def executeRoundtrip(self, args): @@ -1808,8 +1820,8 @@ class Dumper(DumperBase): # with non-existent directories appear. self.warn('FILE: %s ERROR: %s' % (fileName, error)) source = '' - result += '{line="%s"' % lineNumber - result += ',file="%s"' % fileName + result += '{line="%d"' % lineNumber + result += ',file="%s"' % toCString(fileName) if 0 < lineNumber and lineNumber <= len(source): result += ',hexdata="%s"' % self.hexencode(source[lineNumber - 1]) result += ',hunk="%s"}' % hunk From b11bfd56526c133300cf466560ecd28883a9466d Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Wed, 2 Sep 2020 18:34:22 +0200 Subject: [PATCH 32/33] QmlDesigner: Disable more properties for QUL Disabling more items in ItemLibrary and properties Change-Id: Ib019c1cbe356e0f7e3889d3500c080b0f5756c34 Reviewed-by: Thomas Hartmann --- .../QtQuick/ListViewSpecifics.qml | 24 ++++++++++++++++++ .../QtQuick/RowSpecifics.qml | 2 ++ .../imports/HelperWidgets/PaddingSection.qml | 12 +++++++++ .../itemlibrary/itemlibrarymodel.cpp | 25 +++++++++++++------ .../propertyeditor/propertyeditorvalue.cpp | 10 ++++++++ 5 files changed, 66 insertions(+), 7 deletions(-) diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml index d9df5e09b47..f132cc4b599 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/ListViewSpecifics.qml @@ -46,6 +46,7 @@ Column { Label { text: qsTr("Cache") tooltip: qsTr("Cache buffer") + disabledState: !backendValues.cacheBuffer.isAvailable } SectionLayout { @@ -54,6 +55,7 @@ Column { minimumValue: 0 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { @@ -63,6 +65,7 @@ Column { Label { text: qsTr("Navigation wraps") tooltip: qsTr("Determines whether the grid wraps key navigation.") + disabledState: !backendValues.keyNavigationWraps.isAvailable } SectionLayout { @@ -70,6 +73,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.keyNavigationWraps text: backendValues.keyNavigationWraps.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -93,6 +97,7 @@ Column { Label { text: qsTr("Layout Direction") + disabledState: !backendValues.layoutDirection.isAvailable } SecondColumnLayout { @@ -101,6 +106,7 @@ Column { model: ["LeftToRight", "RightToLeft"] backendValue: backendValues.layoutDirection Layout.fillWidth: true + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -109,6 +115,7 @@ Column { Label { text: qsTr("Snap mode") tooltip: qsTr("Determines how the view scrolling will settle following a drag or flick.") + disabledState: !backendValues.snapMode.isAvailable } SecondColumnLayout { @@ -117,6 +124,7 @@ Column { model: ["NoSnap", "SnapToItem", "SnapOneItem"] backendValue: backendValues.snapMode Layout.fillWidth: true + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -151,6 +159,7 @@ Column { Label { text: qsTr("Range") tooltip: qsTr("Highlight range") + disabledState: !backendValues.highlightRangeMode.isAvailable } SecondColumnLayout { @@ -159,6 +168,7 @@ Column { model: ["NoHighlightRange", "ApplyRange", "StrictlyEnforceRange"] backendValue: backendValues.highlightRangeMode Layout.fillWidth: true + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -168,6 +178,7 @@ Column { Label { text: qsTr("Move duration") tooltip: qsTr("Move animation duration of the highlight delegate.") + disabledState: !backendValues.highlightMoveDuration.isAvailable } SectionLayout { @@ -176,6 +187,7 @@ Column { minimumValue: -1 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -184,6 +196,7 @@ Column { Label { text: qsTr("Move velocity") tooltip: qsTr("Move animation velocity of the highlight delegate.") + disabledState: !backendValues.highlightMoveVelocity.isAvailable } SectionLayout { @@ -192,6 +205,7 @@ Column { minimumValue: -1 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -200,6 +214,7 @@ Column { Label { text: qsTr("Resize duration") tooltip: qsTr("Resize animation duration of the highlight delegate.") + disabledState: !backendValues.highlightResizeDuration.isAvailable } SectionLayout { @@ -208,6 +223,7 @@ Column { minimumValue: -1 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -216,6 +232,7 @@ Column { Label { text: qsTr("Resize velocity") tooltip: qsTr("Resize animation velocity of the highlight delegate.") + disabledState: !backendValues.highlightResizeVelocity.isAvailable } SectionLayout { @@ -224,6 +241,7 @@ Column { minimumValue: -1 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -232,6 +250,7 @@ Column { Label { text: qsTr("Preferred begin") tooltip: qsTr("Preferred highlight begin - must be smaller than Preferred end.") + disabledState: !backendValues.preferredHighlightBegin.isAvailable } SectionLayout { @@ -240,6 +259,7 @@ Column { minimumValue: 0 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -248,6 +268,7 @@ Column { Label { text: qsTr("Preferred end") tooltip: qsTr("Preferred highlight end - must be larger than Preferred begin.") + disabledState: !backendValues.preferredHighlightEnd.isAvailable } SectionLayout { @@ -256,6 +277,7 @@ Column { minimumValue: 0 maximumValue: 1000 decimals: 0 + enabled: backendValue.isAvailable } ExpandingSpacer { } @@ -264,6 +286,7 @@ Column { Label { text: qsTr("Follows current") tooltip: qsTr("Determines whether the highlight is managed by the view.") + disabledState: !backendValues.highlightFollowsCurrentItem.isAvailable } SectionLayout { @@ -271,6 +294,7 @@ Column { Layout.fillWidth: true backendValue: backendValues.highlightFollowsCurrentItem text: backendValues.highlightFollowsCurrentItem.valueToString + enabled: backendValue.isAvailable } ExpandingSpacer { } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml index b6b3dfae2a4..93e9fdbee92 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/QtQuick/RowSpecifics.qml @@ -39,6 +39,7 @@ Column { SectionLayout { Label { text: qsTr("Layout Direction") + disabledState: !backendValues.layoutDirection.isAvailable } SecondColumnLayout { @@ -47,6 +48,7 @@ Column { backendValue: backendValues.layoutDirection Layout.fillWidth: true scope: "Qt" + enabled: backendValue.isAvailable } } diff --git a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PaddingSection.qml b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PaddingSection.qml index 83aceb8644f..98fb5def41b 100644 --- a/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PaddingSection.qml +++ b/share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/PaddingSection.qml @@ -36,12 +36,14 @@ Section { SectionLayout { Label { text: qsTr("Vertical") + disabledState: (!backendValues.topPadding.isAvailable && !backendValues.bottomPadding.isAvailable) } SecondColumnLayout { Label { text: qsTr("Top") tooltip: qsTr("Padding between the content and the top edge of the item.") width: 42 + disabledStateSoft: !backendValues.topPadding.isAvailable } SpinBox { maximumValue: 10000 @@ -50,6 +52,7 @@ Section { decimals: 0 backendValue: backendValues.topPadding Layout.fillWidth: true + enabled: backendValue.isAvailable } Item { width: 4 @@ -60,6 +63,7 @@ Section { text: qsTr("Bottom") tooltip: qsTr("Padding between the content and the bottom edge of the item.") width: 42 + disabledStateSoft: !backendValues.bottomPadding.isAvailable } SpinBox { maximumValue: 10000 @@ -68,17 +72,20 @@ Section { decimals: 0 backendValue: backendValues.bottomPadding Layout.fillWidth: true + enabled: backendValue.isAvailable } } Label { text: qsTr("Horizontal") + disabledState: (!backendValues.leftPadding.isAvailable && !backendValues.rightPadding.isAvailable) } SecondColumnLayout { Label { text: qsTr("Left") tooltip: qsTr("Padding between the content and the left edge of the item.") width: 42 + disabledStateSoft: !backendValues.leftPadding.isAvailable } SpinBox { maximumValue: 10000 @@ -87,6 +94,7 @@ Section { decimals: 0 backendValue: backendValues.leftPadding Layout.fillWidth: true + enabled: backendValue.isAvailable } Item { width: 4 @@ -97,6 +105,7 @@ Section { text: qsTr("Right") tooltip: qsTr("Padding between the content and the right edge of the item.") width: 42 + disabledStateSoft: !backendValues.rightPadding.isAvailable } SpinBox { maximumValue: 10000 @@ -105,12 +114,14 @@ Section { decimals: 0 backendValue: backendValues.rightPadding Layout.fillWidth: true + enabled: backendValue.isAvailable } } Label { text: qsTr("Padding") tooltip: qsTr("Padding between the content and the edges of the items.") + disabledState: !backendValues.padding.isAvailable } SecondColumnLayout { SpinBox { @@ -120,6 +131,7 @@ Section { decimals: 0 backendValue: backendValues.padding Layout.fillWidth: true + enabled: backendValue.isAvailable } } } diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp index 273d4adf5a8..a106d7924e3 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarymodel.cpp @@ -213,26 +213,37 @@ void ItemLibraryModel::update(ItemLibraryInfo *itemLibraryInfo, Model *model) "QtQuick.Flow", "QtQuick.Grid", "QtQuick.GridView", - "QtQuick.Controls.ButtonGroup", + "QtQuick.PathView", "QtQuick.Controls", + "QtQuick.Controls.BusyIndicator", + "QtQuick.Controls.ButtonGroup", + "QtQuick.Controls.CheckDelegate", "QtQuick.Controls.Container", - "QtQuick.Controls.DelayButton", "QtQuick.Controls.ComboBox", + "QtQuick.Controls.DelayButton", "QtQuick.Controls.Frame", "QtQuick.Controls.GroupBox", "QtQuick.Controls.ItemDelegate", - "QtQuick.Controls.SpinBox", + "QtQuick.Controls.Label", + "QtQuick.Controls.Page", + "QtQuick.Controls.PageIndicator", + "QtQuick.Controls.Pane", "QtQuick.Controls.RadioDelegate", + "QtQuick.Controls.RangeSlider", "QtQuick.Controls.RoundButton", "QtQuick.Controls.ScrollView", - "QtQuick.Controls.RangeSlider", + "QtQuick.Controls.SpinBox", + "QtQuick.Controls.StackView", + "QtQuick.Controls.SwipeDelegate", + "QtQuick.Controls.SwitchDelegate", "QtQuick.Controls.ToolBar", - "QtQuick.Controls.TooButton", + "QtQuick.Controls.ToolButton", "QtQuick.Controls.TabBar", "QtQuick.Controls.TabButton", - "QtQuick.Controls.SwitchDelegate", "QtQuick.Controls.TextArea", - "QtQuick.Controls.TextField"}; + "QtQuick.Controls.TextField", + "QtQuick.Controls.ToolSeparator", + "QtQuick.Controls.Tumbler"}; if (blockTypes.contains(entry.typeName())) valid = false; diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp index a27a5d1b7e5..d2c0c71f7de 100644 --- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp +++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditorvalue.cpp @@ -289,12 +289,22 @@ static QList prepareNonMcuProperties() const QList textProperties = {"elide", "lineHeight", "lineHeightMode", "wrapMode", "style", "styleColor", "minimumPointSize", "minimumPixelSize", "styleColor", "fontSizeMode", "renderType", "textFormat", "maximumLineCount"}; + const QList paddingProperties = {"bottomPadding", "topPadding", "leftPadding", "rightPadding"}; + const QList columnRowProperties = {"layoutDirection"}; + const QList listViewProperties = {"cacheBuffer", "highlightRangeMode", "highlightMoveDuration", + "highlightResizeDuration", "preferredHighlightBegin", "layoutDirection", + "preferredHighlightEnd", "highlightFollowsCurrentItem", "keyNavigationWraps", + "snapMode", "highlightMoveVelocity", "highlightResizeVelocity"}; result.append(itemProperties); result.append(mouseAreaProperties); result.append(flickableProperties); result.append(imageProperties); result.append(textProperties); + result.append(paddingProperties); + result.append(columnRowProperties); + result.append(listViewProperties); + return result; } From 1074dab46703d80718ccda079f20e5e92c90257e Mon Sep 17 00:00:00 2001 From: Leena Miettinen Date: Tue, 23 Jun 2020 13:45:39 +0200 Subject: [PATCH 33/33] Doc: Update info about exporting 2D assets from Sketch Change-Id: Iec58bb071cdde7eaab3d84f6d06f9d646f341524 Reviewed-by: Brook Cronin Reviewed-by: Vikas Pachdha --- .../src/qtbridge/qtbridge-sketch-using.qdoc | 64 +++++++++++++------ 1 file changed, 46 insertions(+), 18 deletions(-) diff --git a/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-using.qdoc b/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-using.qdoc index 677c1c610e7..820cdf4b52d 100644 --- a/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-using.qdoc +++ b/doc/qtdesignstudio/src/qtbridge/qtbridge-sketch-using.qdoc @@ -46,30 +46,40 @@ that you don't want to be part of the final UI, to avoid cluttering the \QDS project. The QML code generated in \QDS corresponds to the structure of your Sketch document. - \li \QBSK supports document \e symbols and \e {symbol overrides}. Each - symbol is exported as a QML component, and each symbol instance is - generated as a respective \e component instance in the generated - QML. The symbol overrides are exported as values of properties for - the components. For example, if you use symbol overrides to specify - the text for each button instance, it is exported as a value of the - text property. + \li \QBSK supports document \e symbols and \e {symbol overrides} for + text symbols. Each symbol is exported as a QML component, and each + symbol instance is generated as a respective \e component instance + in the generated QML. The symbol overrides are exported as values of + properties for the components. For example, if you use symbol + overrides to specify the text for each button instance, it is + exported as a value of the text property. + \li Create components in Sketch and export them to \QDS before you + start making instances of them. In \QDS, add functionality to the + components, such as button states and then bring them back to Sketch + as assets. If you use functional QML components in Sketch, you will + find it easier to merge new iterations of the design to \QDS and + continue to build the screens there. + \li Use descriptive and unique ids to avoid duplicate QML ids after + exporting assets and \l{Importing 2D Assets}{importing} them to + \QDS. \li Store all assets in the scalable vector graphics (SVG) format to be able to easily rescale them for different screen sizes and resolutions. You can export assets into JPG, PNG, or SVG format and select options for optimizing them during the export. \endlist - To use the fonts that you use in Sketch also in \QDS, you need to load - them to \QDS. \QDS deploys them to devices when you preview the UI. For more - information, see \l{Using Custom Fonts}. + To use the fonts that you use in Sketch also in \QDS, you need to import + them to \QDS as assets. \QDS deploys them to devices when you preview the + UI. For more information, see \l{Using Custom Fonts}. - For more information, watch videos about using \QBSK: + For more information, see the \QBSK tutorials that are also accessible from + the \uicontrol Tutorials tab of the Welcome mode: \list - \li \l{https://youtu.be/oLdEJMoE7l8} - {Webinar: Turn your Sketch UI Designs Into Code with Qt Design Studio} - \li \l{https://youtu.be/qQM2oEWRBOw} - {Talk: Turn Sketch or Photoshop UI designs into working prototypes} + \li \l{https://www.qt.io/blog/qt-design-studio-sketch-bridge-tutorial-part-1} + {Sketch Bridge Tutorial Part 1} + \li \l{https://www.qt.io/blog/qt-design-studio-sketch-bridge-tutorial-part-2} + {Sketch Bridge Tutorial Part 2} \endlist \section2 Using Artboards @@ -94,6 +104,9 @@ import them as QML files and images that you can drag and drop to the \uicontrol {Form Editor} in \QDS Design mode while creating a UI. + If you want to use the assets on an artboard in \QDS as they are in Sketch, + you can import the artboard without generating QML code for it. + \section2 Using Layers and Groups When you use \QBSK to export your designs, you will determine how you want @@ -105,6 +118,21 @@ You can select the asset format and DPI to use for each image in \uicontrol Settings > \uicontrol {Asset Settings}. + \section2 Using QML Ids + + The most common issues in using \QBSK are caused by having duplicate ids in + your project. Even though the importer in \QDS is capable of detecting and + retaining QML ids, you should still manually check all the QML ids to make + them unique and descriptive. + + Name the layers in exactly the same way as your QML ids, to be able to find + artwork later, especially as the export files can grow very large and + complicated as they approach the level of a complete UI project. + + \note Even though \QDS is capable of handling the ids during merges, we + recommend that you do not change the ids after the first time you export + the assets, to avoid problems. + \section1 Exporting Assets By default, assets are exported as follows: @@ -143,9 +171,9 @@ \list 1 \li \QBSK automatically proposes identifiers for all groups and layers - that you can change in the \uicontrol {QML ID} field. The ids will - be made unique when the layer and the respective artwork is imported - into \QDS. + that you can change in the \uicontrol {QML ID} field. Use unique and + descriptive ids to avoid duplicate QML ids when the layer and the + respective artwork is imported into \QDS. \li In the \uicontrol {Export As} field, select the export type for the group or layer: \list