From 51a956366f5f39799759d317e675da11a09744c5 Mon Sep 17 00:00:00 2001 From: Nico Vertriest Date: Mon, 13 Nov 2017 11:54:48 +0100 Subject: [PATCH] Doc: move notepad example to qtbase and improve it MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Edited gettingstartedqt.qdoc - update .pro files - replaced snippet statements by \quotefromfile - removed second version of notepad.h and notepad.cpp that were made only for quoting snippets (\quotefromfile reads from the program code) - show current filename in header of window - added checking routine on filename in Save method Task-number: QTBUG-63984 Change-Id: I5298d761763a4dfeb705a1d9b77354be853ada88 Reviewed-by: Topi Reiniƶ --- examples/widgets/doc/images/notepad.png | Bin 0 -> 12418 bytes examples/widgets/doc/images/notepad1.png | Bin 0 -> 12418 bytes examples/widgets/doc/images/notepad2.png | Bin 0 -> 22700 bytes examples/widgets/doc/images/notepad3.png | Bin 0 -> 40584 bytes examples/widgets/doc/images/notepad4.png | Bin 0 -> 9494 bytes examples/widgets/doc/images/notepad_menu.png | Bin 0 -> 8657 bytes .../widgets/tutorials/gettingstartedqt.qdoc | 559 ++++++++++++++++++ .../widgets/tutorials/notepad/images/copy.png | Bin 0 -> 1633 bytes .../tutorials/notepad/images/create.png | Bin 0 -> 459 bytes .../widgets/tutorials/notepad/images/cut.png | Bin 0 -> 9554 bytes .../tutorials/notepad/images/edit_redo.png | Bin 0 -> 7463 bytes .../tutorials/notepad/images/edit_undo.png | Bin 0 -> 8424 bytes .../widgets/tutorials/notepad/images/exit.png | Bin 0 -> 379 bytes .../widgets/tutorials/notepad/images/font.png | Bin 0 -> 6983 bytes .../widgets/tutorials/notepad/images/info.png | Bin 0 -> 557 bytes .../widgets/tutorials/notepad/images/new.png | Bin 0 -> 7422 bytes .../widgets/tutorials/notepad/images/open.png | Bin 0 -> 5437 bytes .../tutorials/notepad/images/paste.png | Bin 0 -> 3597 bytes .../tutorials/notepad/images/pencil.png | Bin 0 -> 3780 bytes .../tutorials/notepad/images/print.png | Bin 0 -> 331 bytes .../widgets/tutorials/notepad/images/save.png | Bin 0 -> 2699 bytes .../tutorials/notepad/images/save_as.png | Bin 0 -> 8209 bytes examples/widgets/tutorials/notepad/main.cpp | 61 ++ .../widgets/tutorials/notepad/notepad.cpp | 182 ++++++ examples/widgets/tutorials/notepad/notepad.h | 114 ++++ .../widgets/tutorials/notepad/notepad.pro | 20 + .../widgets/tutorials/notepad/notepad.qrc | 19 + examples/widgets/tutorials/notepad/notepad.ui | 196 ++++++ examples/widgets/tutorials/tutorials.pro | 2 +- 29 files changed, 1152 insertions(+), 1 deletion(-) create mode 100644 examples/widgets/doc/images/notepad.png create mode 100644 examples/widgets/doc/images/notepad1.png create mode 100644 examples/widgets/doc/images/notepad2.png create mode 100644 examples/widgets/doc/images/notepad3.png create mode 100644 examples/widgets/doc/images/notepad4.png create mode 100644 examples/widgets/doc/images/notepad_menu.png create mode 100644 examples/widgets/tutorials/gettingstartedqt.qdoc create mode 100644 examples/widgets/tutorials/notepad/images/copy.png create mode 100644 examples/widgets/tutorials/notepad/images/create.png create mode 100644 examples/widgets/tutorials/notepad/images/cut.png create mode 100644 examples/widgets/tutorials/notepad/images/edit_redo.png create mode 100644 examples/widgets/tutorials/notepad/images/edit_undo.png create mode 100644 examples/widgets/tutorials/notepad/images/exit.png create mode 100644 examples/widgets/tutorials/notepad/images/font.png create mode 100644 examples/widgets/tutorials/notepad/images/info.png create mode 100644 examples/widgets/tutorials/notepad/images/new.png create mode 100644 examples/widgets/tutorials/notepad/images/open.png create mode 100644 examples/widgets/tutorials/notepad/images/paste.png create mode 100644 examples/widgets/tutorials/notepad/images/pencil.png create mode 100644 examples/widgets/tutorials/notepad/images/print.png create mode 100644 examples/widgets/tutorials/notepad/images/save.png create mode 100644 examples/widgets/tutorials/notepad/images/save_as.png create mode 100644 examples/widgets/tutorials/notepad/main.cpp create mode 100644 examples/widgets/tutorials/notepad/notepad.cpp create mode 100644 examples/widgets/tutorials/notepad/notepad.h create mode 100644 examples/widgets/tutorials/notepad/notepad.pro create mode 100644 examples/widgets/tutorials/notepad/notepad.qrc create mode 100644 examples/widgets/tutorials/notepad/notepad.ui diff --git a/examples/widgets/doc/images/notepad.png b/examples/widgets/doc/images/notepad.png new file mode 100644 index 0000000000000000000000000000000000000000..40d13269b9001abb873a5014d46bb100c1010255 GIT binary patch literal 12418 zcmdsdWmH_-vMzfQfh4$uh5$iB2Y07;5(w_@!MbrmaNh~;-nhFHGs6%_33?fdO2Kyn=#) zJUlgS2Mf!D<)WDJbiOi5N>Pn zH;_{0;pM$+!?V}bGBiZC``qyG@HiVvf551lNEYZ~c!27-N8jD-Y;Us-62C2mT2PC* zbFs1xf~r4HKESM3q1E|5vL!#Ck&UgqBuiCOlZ=GK|2yVWr`jTulamJq{1IYbmzIAWsL?aJ;K6z5jncS`|KS~ry`tBk;DeWItrFW z3biOf15bIeu(G>{7SSen0T%2T(YdXef!=y zW?}E6>s?%G4_a-8@_{+9poBP*c4b^&T+-Y)DL-F^BBDq@c0ncpfN~gY+S?cA=jX4l zuWv;8j6x3@&SjJdfLymEuiJwNeAj)zagqtnBh>E@w=Vr&1RVnVXK6KtjA_&qvATD6 zk2%|K7gAfX&#Voq;)@JjPA1K|wHI7FyFr9RJ}wtC#zbR(qV6x6fJBK@sM{S7X!cu+ zp6m}w;hm|O4T4bBV&Am`uvlvgN)~s`BQQ}ydjJSAb~b3InasB+-ErjCacGI%$XU-@6_eyB!RpBn#=i>A#66v}H9TN~1H`bGPo`CzjCIwsr!jf_~}H|}uX z=*~){5h`#%-HBz=kT>1i7zXA;3g^6bCKq~)^>sN*yH-T=Qld+V-cJb z;w@_2a=J)`NV|e%f_M&rdLdX z-T}-7VfDBjF%vkTt460$BbU*laP;x|>IUoqjl=ZuddIoSsucmq=>oVEF+%m+2|3B> zcQ$|!Y~^#BZ$>O!M!C>B!e)wuLW)i9u*1()mpwYNyfmSPnNt;;H8)ef-^$Im3t}ZD z6S$nWS7S?_;2pf16h74iZkqdnQ0^;iWQQrG&)1H9(-aQ{!KLv-BhB$H z^_mjel0Pp!;qvEdn)pUf|%~*^so}X@8b@>C=@c$Ga%4R{ahg_ zC;NVj;2}+J{(~lT$qj0DlhUc1p;k$*utIsrqu@^&IT~p4hoUbvdpDFty-oO>FO{r< zNx&mM7dO}|Ggrz)V|#8WbqxdWi+NPX`SR0E$oDGB=og-Y>G1Ze?(x}o(E(ZBlWXFL z*6THYr@HW0MNN&j5Jx(xERSwLNvYlxdup-i-pOby7tnA`7e3my+_k^6pm#mG5sAxi zT_EgJABn48x!G5e84_~tcedV9Z>!zE-5Y)$<1}OuPu$}f{zG5iP*?98r=NQEEvfH7 z;`5>^AE$nQr_C?@ZIjqL4Sa;X%e9|LAdok24u*z2qVIcAU)^2N>Q4JD9of~@B(-lr z*uH?fXClrNqx8Y3%NrnS;X>08?ypzHnwd^}zAPV})Nz$QM~<*ros6FMUJH?72AUl2 zrU^*gRh=1kv~dZT9SX024ITGdi*k*9*VmsqV37#h%qqhVSht`JI?LY)Oad98VYTwMM?TkQ zOjf0e@5CPPLO9WV zr;HEFuze#Jd@hjOW-v)f$wdQwEG!&y9?W(T1HeT2Nv=ouKVuKSj`~~)3y@;{+7hr* ze#650fk_jDK67PaE;k_<+OG*pq!WdhjG$+zxVZRxGiED_;(aIAWRDane~Q^7)U(Ma zCq|Pc_MVlKVs7CrwBEZ}-zkK!upT`9C&xd)SXkdj#d#x;qsnp=+z!F$ybk|n&QbXt zr@PmJ67pDoX32ml9{N$y#>b4`8Xt%XxJTq_b5e-iE}Y@@nT=6u8H|aq{di7&q43%9 z)Iu!tDdx34JK6c?ICt!yC2{OeojxC;$=XtBZ3~J7q(MK38if`{dU%iJbsGfxIu{hs z`g~3d>3*u-v77sw;OukX#*d~#5@uL`lEeV!6KC)9<9VWgJVx}~pt)m1eh6{M_t|o% zU@OzSnD@=c-pb2inomNP}+CW*I|4(*N? z2n=Y6Iop_8FkI*K=Ug?{QNAerRq%<0BfE!s%%Y&5*X@Mh`D z9CHzo4O%*Cx2a4JZT4kdXfN?h)NOUw-AZg*9Sh5lK43N>_F}VoLYm-i;^uSx;Qo;9 zO^S;R`rLYQrb@!~s)R^Vyz0I~moxKbeRlgPxVKh?WH03C8IzbeG@j*VH#Uj2u>G)q z-f3A_RqJ-ses)f}{gt+YZ32wU%iPxc#qsZ0i<0IrBD2LkJZY-Of@>Pud#RH<{@u}d z#g^49MtF`}vy`KjY~V;#bWBLraI=g{MLR$Jr;!Z+Q1#zY}x`ytBe zE#S}s3tZsC_5*CJMQKF+;~jL%+AQ(o!m?hJ?M4Ye-1G9j;8h^d@Rahrjt)@1=tuQh z%8Qy*Y6WUSr-Lz46;PgG7%Q{FuJKV8XWw>FI*;Y;0Y^mBYWq{j4Na4yH7&$t$sYBc zmpMPkmn@jC^r=&OxRtBVd(==sozuq1?O?B)!Tl?<{fGWttb*QgRfFpKw>i+Cf}Jgg zZKHxkXKs>b`&p)t%i`a#e0lDk(fC~(BF+XpmQ!sG?z5*uGP&*t124`w-O+_k@1xol z-A>3W=GVwGlFNQ}G&xM=!wUuO(!BTddzp`t;aOLgSK*1u_aBdXWRuV)B|ehPwQIE2 zK9%=yvQXoBk+mTz8nk&;)F=Qeo3(m=etxn{+t_)*`7e+A|jm+Uj`x;bbYEhFqxlX*_5}JBp3(&T@I59 zpPPtbeCZ3>H)%Ti-!T5%X%Qr8j)nDyv`QLg+AluN^|W?k@3=}CwB*NMZpDZNnd@i| zH&5w1Wusr3vGLP0jnhn?daAK;UVDCmC1iE!xl%3f?Pc!W;2XGESLGnh8mWsL@*`X= z0gg-TnOnRSEuh&K&jI{=?4Q({;gySnxnGXop=px3Gh;Ky15a)d(#C6KT zzg)MPPp%vz8C2;o*nd=2nAzspBp&HCk+}k&92^CSCQIF&|LJB^QdC@5xB&T7Ie#-& z_#T-WlX&~1si@AAJ;hip-rTBX$4WotU@B(})H2Od0zVl*R?vX`)w^>u8di?NXsR4; zDzS-_yrTCFp#Z#0*sb9W+IfRNTCAnIy_1AyUBuU>{Oh`x@*aVsILB3!cMqQZ1seOY zBK!$jIX919T|EvUS_orfWIZWq-u%Fvt{MRj1d?|i?LwT5bS+%8w4e!bP8^dH-k?sPY4>$o3+mItR*Of+e$p^a34>bdcnB>b4nYmdHwn|`sAqZEe?J2 z;c|H69-C+W(!f3Wel_|1Md{Pgy+bB%XkEbJb!%5m$d8>9PZv1X92)&c)u>JCBZ%HG z^k9Kp7ZJ5fzU}JzGw;Qrvw@3(ODL%}!a;kqoXsfJ7`e#z4&&n_<>;o;$-Hf%vwAMVXUBU?SC6KOPV zfUa=avHg#lgtrfP{dw1q+!f#xe8U~u77;Ez8dzx%@PL zJ)tFf-smEaBabs^UGHF_K@#tSqA@+-Y&yQRqIL}psP>kqVq&8|zG^i>ay@GsW*^$H z;Zw*Po#IsX+`)y;-=(4Mt#<3UbIxwXywwAzj!u@(Uhuq#krdu$D+EzU}>niquZ;y<*sHSfq~c7%n^#05*t5UIC{46gc*XL{j7^Jt~9@y zrI?d|Zyenhr}Z;PKeIvyq}$C&P8M!%a?zJ^REZq=&oZT`>fSnVoTz(d8R^v>Y}5?0 zlofAhO!loDalyPLP?_Rh<8V0A-c3zSZD;t^A!tLaUjM?Msh|YdpJ5N4^sHu=CZ43Q z{uWl{A`zA1*mHE*jF$$Bps@gWe#pIB!Ewz8f2AWcDmhlu1g^=wRu3W$fAzJGtRd*@ z9ix15dECUCs*Xy&qK4I$^=NOE6#WI2>+zmIpJf8tjEcEN*M;*wde3S8f~~AB4SGP2 zN~Em_S@t9e`yesYLKn)UM_v7q{yqQKnXH2acMEAwy1;6-K|Va-10tyz&B*w{!n&C$ zJb1*)b^qF&^|N<#EoI;lb}!e37+-kgd?j`8qn9nW{gBg0`$MTy`A_@~bm_I7B})&< zA_Y4-R<532yV^PUb8|?-7fMR13aPT#3^(j2g7LR2tff`oRM2vS{IQjK`SKr?Ey z*m0z7fA)Q^w4{VvhT%9j{%>-?fv3;E(I>M;1n3f9L&j2)7+112;wcWi-%N8o)7D8I z-B?NASX*P)tudb}*F_k4?OknT`E3;>T?=~Ozgo&FE-4w~8{TpzR&{s3+#mNZ0m@>O zPFL}g4mT--x^KvmJChqc!4k)~wiN2B^R`+Gzc*-gXwZWJ!fb{caY47BP0ZcyU!0m8 z9ME{DJh@THf;v;GBH~R2Q8akZw5s}zgze0EcLo(@rlz2Zrb;JvQwuFqbAbk!sF6eY zzGrqiRA)G3DrIc9O2iu%m`_MfWCzmWcliJ-avPza0i%Lk6A?HjhNnhLt}C^pn%<2rn`NBT(MXvjF%OI}AGF?N+BQHlFTaGac>Qr-Ta>YO-@Ut9tq;pb z9*vEpp$2dIt_%TGamg0AuvBPubHh@&W?E5(#QsS^nSm1IhnY*nuEn4mo8j0kx8f78 z*6}S(M5#ChlPFE-&Xl%#c%bHR0w4X!H)Do1pym8+Q0k|eI7fW#7a3{6gyS6+2m}Ij zy_r|lfyNYEswyipc`U*@G{}mzaOoF5)w=tz9@x$-f@FL|4(83XnURmKJ$gET` zC0K;KFz4}D#BBewk>m`S_@2=10u~cVMpjt?!kPRD#@c!(mX`%AvqB&oNH6g)HH2n51qVN!BIeWb3f!S_B;v9M9T~0<^C4#GJsGNr8Jfm?pV>5QcE^O)7-8$Mn1HT}$E6Ers<)HU(2sn3 zJ2f)C*Z3sI+T>NQb4yIwl3_~*Z`)APNhS*@JBe0h&}~Mk9V$v3m1EYo;JH&#qFyBO zA}TkRz6F^X7dM`(nO4~3xB?S)T4&R%vqUz#@PdbgV84C5l!d^q|1-u=dVZkKpVg?H zUX1I-l_TYe(wB;m3B!q7GjfpCx%?n|#F#fL&miw+dBZ=l`J=R@tN7q!5$V-uX|#5o zn|wDKhkU8bTIE~mr$iD5Tf!&mUuI>w=;`})GWzt5jX47j-8g=~dqyv^G2d;5Jc|^W zc{`1jpI~G-IxtvGw!}e!TWAh@#%zo|{$Z*b%oX9d*3i*zqM3 zN-ewm7*`AzR%y@Jh`Zs z=Cj$`IFEri+ekDpyVuYVyWQ zxfE*06&0);z8hOCM-5F5r8(%*Sa~E9gHOl;4$zTqLthRj67Y@J>II+scCaHrhI*PW zhWa`h!_f7Xjw1x1dG|a1H)NkhE)#9rpPEKkfX}xRV~-|oAt9?~Nd~)9@X+D~$gn%V zw9Jg=8dx5Ot_Pa_r9>STLCO8$Dpe6*DxHT>G~r4fXuk7=5i*cZ*EYw-Ku%L^)L;?K zIL0e1@&j==`CNnSj-7u;!^)Q4R1%udOv+#A6-eqL$vD&|X=7?y>kZbiP}MbvW^Dnp zZiLCCygYF_-M({8EQ?43Ka3=R&$ z;c)CgAWUbmyp-Q&it*K}Xj;$$=sRHI(iGCPa~60%?LH!fT@#%D;6m@`%#fw(C9kt_ zc<8x}dZE?q-uZeSYS^?JXqgR6AstIkB-xUzj5`inO;CSeQSV3BoFJL|o@nhM=$rd= zUCe@xJ740)E%I=xiI|!3G?i2VsKvVEeeHgmBysrg6ieJO`z3=Z$y`(*U}p zvBJk$1wF6rD?_s=Bv(fJku=+J2NX*$Ww)W!of^LWC6cs9FJx1P&o7N>nhppE#EvH5 zj9bTp9KvF>GZt%L%*IcMeSNkMgZS* zGTTLB5WmmW?$bTrrn!<&ENkMP#Lh=RJ}teFEtLDtdOPB)$H_XT6Co-p>NQ(u#gW7+ zBI0>{x)o&NeLe$G6z*;Eqqtp5GN$1+?FqmonYE@>g$RhWPI5xygmT4@ji<- ztDv)?(w&~UG8T@nflMy9t!7(-j|DU7%JF&3RLpx*V$1N{zFI3!iF?_OILGCxHFg+z z-F-jIR^oLq%Wh}5Yd<57^_WjZEco0Uqp6AWmN>`fl$Yg>}ymh>6m(=q1McfN;GmTcqoA|oTK(mNaeY7Xm=KwV!j_0j-x ziUnNchfD2PN2n*wR;Km}$Rqc6vvYplJbDoiWlCVaC4VMe0HK;*?yx5V*^6>y zvNnA_OPJHC0)CBLKGTI)HQRlE@#TKlRTQ6m=nry=Fj@ChI7qYzN*t`lJ*%DRjq}~?|VLG zd3F!_FcJS!Qn7o^6l2(yJ{Iq(+VJRMq`<43WZX(h`hu3IKq=wmQ`hCa6s>$yC)Y#0 zh!7HzWdZb>6rA~i@P^d=%`*2kdlRL?LoFE-U2-#X^-I-KHBqyQ7t8p)KL^6GOdFAml3Kbol zX*4&H85=JzukSmKD?thJA@?A{F3-)~90s0QiOw;$^4R_UROhsP?=%L*C$w&bL+Mwi zl7?5vTz)8FXKVQE?CgkxPM<*L(!FNzr1i|MFi*n3S)79_o1U>?LDgP~{%DQO6QT@I z;r3a2a>ylamCsRD?W36vouua#DSfWP0hZzzV`j?d>s8&LB3Vk8XdW%JyUJ;IetR&- z8g7(S`q46YU$@Ja2$!UL1(vY?jg#)oVDL^NRBkW=*JVU&%Z-1qV6jw;X*6D zo3CT#$bduc=AFcz1xeCRUqACo3-YRm*t2~qdhV|LD7%G+-{&I z=q$u-*4;{q%Iln~uyw)3Y1kQ*0ES9u)5C>eA4> z+Y*E)C9U>}4);Nn>uH;dz07((;EABmqTnV5nPn*Bwmc6FhN<}G)*L`xiA z+Go7^jAh742V9^9BrMobys||2P}N^Q8ebVSPtnBA;q>)FX&nO-ApV5~u)phkWtfWe zL#u}LLz)^no*N-o&1H|RiJZ3;*abc_#&S)jR$RmCySQ${?QpDw@}>bD@-#dnYtBKZ zZ-=q-t{j)1a<+1L9Ge3zJUp&2MvCryO#AGGP|TNa?3%?eWjh95Eng+{5QW?OszHdW zlThmekP`TT2s!xUhT_cL`S;2qq$(cyCtdY8#>Wf}udb8uG$TzMJCWCsM2>OL)i9oy zqAlINk2Vah4}`kDyueOEFC>%Jbi${P8=-*rJ+`jkrz=3n0F3?^w+d>N${cHmBOh?Q z-e$y!*TiQ%K1_Wf-|o9`bJxPo(Q|`4j#pMaAy{afKe(Wg?0dg6&;L00#rpOY;*?q< zd(K$m_0w>r398p8@`J}V498iz=P=rlCv90{Q|>`)w4;^|cWH0s#`@pQ6ej@c3y9Xd zP)V(R9}H9`iP?xoCmH)qn}}x<-MaKQ#J{0x0!Z`q)gnYYZmg25Q^EXGe73i4XF+Fj zdD=WRi~uN~`n3>bK5@KExwsE+xY5$u70gZ)Ni7O>;wX3_;><#{hipM~OuAiBT#ili zt?h-1%g;##cIb;Hk-$)K*Doqjp@7w9z`fVePQlgrnXs2K^|W|ho1H!af@4B$CzhuR z@|R?}dv^c)febJ(MorG^ltO;?EJ&;MMEg3p_`B}S;!BU2NF3Kw#Q7|@xwwOD}6E;5%}4GRb)PS7{u zg@`aN6ImY0P?q_%mqquPm{QLqzwKts8Oq)k{e$FSt^R6=8+#dsA3|^|Wd36@TLOQk zli%k}It>G8PW5Wy_->W<(GyS5r<)vYg7+C$qgA)yY8E}e-d{gvtr76LdIQ1s65)*)2XLXLCR7eB5SqFv!`VAc@Ia?P(}F)BkW`+v0I{ zzF-K8q!_pyy9VSK!4YUj$+UNros$K{m8nIpui82{d%WVywN*x+&Wi@5+Urkrx<68d zBO`TUie_m<5L(0#w)x4LER$MHHOX-llfFS%1d?j6j$G71?^INRzq+A3ZjQ-V%SuZl z6KwCVQ@!4J6*PUGnR#c*84?+pB4lzKJ+(NV`vQL5$CJwqi0!39iC8m}q; z&i&?t`}g8&2ZQq3=D2j(4x(VCF?<05M()9vg9(xbGOoo;qBYDt=`Om%!BslkKyTQ5 z!tT%sU2Ree9=2AE|1NQnlmeg)r z_O?wtkMU@DEDs5hq|F{ZRrFmMbQVG2+6>28Qu81u-48tb z4>dL)K0(?~DwRFGvraD?sJKa*f%x_BO?2Z<2zS`y%=Np8(X$CNZ|vk;-Q&L4h7)%A z5jRw`(V4^9#m~fA*gM)K;-n37EFH&DSBX47{ST_s2TkLo@=mqCC9gl@n>};Ro|e5Tuq_@;~MLZ=Oz!2#PQg} z>d>mo-#yB{I02b(-%)zJ<|OxyqZE+T%up<1BzkIsH3J}Vo$)Rr+st^e@I9rpSE=nv z2bNoqP-p^8N(5V2)Jw3Wi@H_b_g$TAJbugl@zSDp2Gj0asewc9raI%|dIAE@m8U=S)K^bn zKNfLP&@diuiQav#FbeB@;3)e=hS<#ZXZD*n_Mo1SZ_d?GkEuL+0(fC)^dz$=L6bv! zBZrgT`_Y(Y%YJ+(nR3D8B5HZ|n-Fk*sigBBUWc6@{@wMNFb&hXZk`(Yc&W1`OJBrZ zWjkE{n2Zjrut_`qw8RxrnR^Evt9h^;Ikm=JmHvkP0rjob6TH+!=47!S)yxHC79v? zCI}N&5uIR74a4h^k?9YqpU$^{SBo&fgdpihR=Bf0=EEyi&P`v${Uv6sm_=KTnbrDb zWnDDa_QaOvYm1nenCelFD9o_0sgrz1AI8@rR-xXBub}JHADG3RXa4L-{;BkGpBJ4w zq{^!YLU+`QLVZs%5SASROs3RYG3+Q*x5@*8bU~)Hk%u1%rT8<1$0ri)Jhr-(-?+QG zf8q(04)AI-%2Orqm5xm(EMvhXA|k?XX@d`!YwNtruLRWiUq5&SD4{fY0#k~53QbFE z!4&1>IW|`f|705+cR}(EFY>-qB~2@|5}1p2lD{JvsRWl0fyh{xPj53({tNQIR1bLQ^(>l1VuRxj)>hip>3( zGzjqK{7vMulYo^D7~$3(eXn^8>O-=amBaHk51oo=_C7quw6WKY09qK7%FBNuS6<=3 zFqasVicTY1|5u+J=QS@Znl{=6Gsw!FkKt+ zXsTqG2L?4k$o8w@{fp&dU;ndtUt-MT(SNkl{}%KMBJ&H-@_$7CP5CFh=C2<7Ut|7- z@=xYiQJDZWxpGPjAJ9JlIe&NU|3%DS{r7*N{LS=lw9em@znlO6PWfB#FF?+JE$XjH z|Fx+94dcJZ{EMi+74zRS{tI#RKfLjO&-i~(P7FZj;s51_{y%yjjJf=+jDNF<{{p*V zzy{h|4#W^RsVxJ|9>%n4i4)N+b2x-z1x4`(N-piy1)JfZjri?I9JXV zz$|~~vSbfMcNpe*9&XQrYYa4oQ0|wz{cjcbG1qqfHUsST%XYKPFjN@bI}`91TrS(LLjFG~b9zbnv&D)_;f9#V zGy7VWze@3{`wK6OkO~W{LvJr3|96tl`HK{07 zq&rEeQka$IvXqu`pbtC#%7C;HF5O(eVC00c3B;_VSc}@ZC0M;pxhw){7}R%g_mZb#3Wh`pKuLsVSw3rai;fdHb1#rVXP`ELkZf$;!7M GzWfKfalvZ< literal 0 HcmV?d00001 diff --git a/examples/widgets/doc/images/notepad1.png b/examples/widgets/doc/images/notepad1.png new file mode 100644 index 0000000000000000000000000000000000000000..40d13269b9001abb873a5014d46bb100c1010255 GIT binary patch literal 12418 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 GzWfKfalvZ< literal 0 HcmV?d00001 diff --git a/examples/widgets/doc/images/notepad2.png b/examples/widgets/doc/images/notepad2.png new file mode 100644 index 0000000000000000000000000000000000000000..9cec1f9a581e7d8c547937af9d753526a1324796 GIT binary patch literal 22700 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 literal 0 HcmV?d00001 diff --git a/examples/widgets/doc/images/notepad3.png b/examples/widgets/doc/images/notepad3.png new file mode 100644 index 0000000000000000000000000000000000000000..426861ab0680f1d51d6cb1a323d92d6058025f7c GIT binary patch literal 40584 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 W&+V|1 \b{New File or + Project} > \b Applications > \b {Qt Widgets Application} > \b Choose, + and follow the instructions of the wizard. In the + \b{Class Information} + dialog, type \b Notepad as the class name and select \b QMainWindow + as the base class. + + \image notepad3.png "Class Information Dialog" + + The \b {Qt Widgets Application} wizard creates a project that contains + a main source file and a set of files that specify a user interface + (Notepad widget): + + \list + \li notepad.pro - the project file. + \li main.cpp - the main source file for the application. + \li notepad.cpp - the source file of the notepad class of the + Notepad widget. + \li notepad.h - the header file of the notepad class for the + Notepad widget. + \li notepad.ui - the UI form for the Notepad widget. + \endlist + + The .cpp, .h, and .ui files come with the necessary boiler plate code + for you to be able to build and run the project. The .pro file is + complete. + We will take a closer look at the file contents in the following + sections. + + \b{Learn More} + + \table + \header + \li About + \li Here + \row + \li Using Qt Creator + \li \l{Qt Creator Manual}{Qt Creator} + \row + \li Creating other kind of applications with Qt Creator + \li \l{Qt Creator: Tutorials}{Qt Creator Tutorials} + \endtable + + + \section1 Main Source File + + The wizard generates the following code in the main.cpp file: + + \quotefromfile tutorials/notepad/main.cpp + \skipto "notepad.h" + \printuntil EditorApp.exec() + \printuntil } + + We will go through the code line by line. The following lines include + the header files for the Notepad widget and QApplication. All Qt classes + have a header file named after them. + + \quotefromfile tutorials/notepad/main.cpp + \skipto notepad.h + \printuntil QApplication + + The following line defines the main function that is the entry point + for all C and C++ based applications: + + \printline main + + The following line creates a QApplication object. This object manages + application-wide resources and is necessary to run any Qt program + that uses Qt Widgets. It constructs an application object with \c argc + command line arguments run in \c argv. (For GUI applications that + do not use Qt Widgets, you can use QGuiApplication instead.) + + \skipuntil { + \printuntil QApplication + + The following line creates the Notepad object. This is the object for + which the wizard created the class and the UI file. The user interface + contains visual elements that are called \c widgets in Qt. Examples + of widgets are text edits, scroll bars, labels, and radio buttons. A + widget can also be a container for other widgets; a dialog or a main + application window, for example. + + \printline Notepad + + The following line shows the Notepad widget on the screen in its own + window. Widgets can also function as containers. An example of this + is QMainWindow which often contains several types of widgets. Widgets + are not visible by default; the function \l{QWidget::}{show()} makes + the widget visible. + + \printline Editor.show + + The following line makes the QApplication enter its event loop. When + a Qt application is running, events are generated and sent to the + widgets of the application. Examples of events are mouse presses + and key strokes. + + \printline EditorApp.exec + + \b{Learn More} + + \table + \header + \li About + \li Here + \row + \li Widgets and Window Geometry + \li \l{Window and Dialog Widgets} + \row + \li Events and event handling + \li \l{The Event System} + \endtable + + \section1 Designing a UI + + The wizard generates a user interface definition in XML format: notepad.ui. + When you open the notepad.ui file in Qt Creator, it automatically + opens in the integrated Qt Designer. + + When you build the application, Qt Creator launches the Qt + \l{User Interface Compiler (uic)} that reads the .ui file and creates + a corresponding C++ header file, ui_notepad.h. + + \section2 Using Qt Designer + + The wizard creates an application that uses a QMainWindow. It has + its own layout to which you can add a menu bar, dock widgets, toolbars, + and a status bar. The center area can be occupied by any kind of widget. + The wizard places the Notepad widget there. + + To add widgets in Qt Designer: + + \list 1 + \li In the Qt Creator \b Editor mode, double-click the notepad.ui + file in the \b Projects view to launch the file in the integrated + Qt Designer. + \li Drag and drop widgets Text Edit (QTextEdit) to the form. + \li Press \b {Ctrl+A} (or \b {Cmd+A}) to select the widgets and click + \b {Lay out Vertically} (or press \b {Ctrl+L}) to apply a vertical + layout (QVBoxLayout). + \li Press \b {Ctrl+S} (or \b {Cmd+S}) to save your changes. + \endlist + + The UI now looks as follows in Qt Designer: + + \image notepad4.png + + You can view the generated XML file in the code editor: + + \quotefromfile tutorials/notepad/notepad.ui + + \printuntil QMenuBar + \dots + + The following line contains the XML declaration, which specifies the + XML version and character encoding used in the document: + + \code + + \endcode + + The rest of the file specifies an \c ui element that defines a + Notepad widget: + + \code + + \endcode + + The UI file is used together with the header and source file of the + Notepad class. We will look at the rest of the UI file in the later + sections. + + \section2 Notepad Header File + + The wizard generated a header file for the Notepad class that has the + necessary #includes, a constructor, a destructor, and the Ui object. + The file looks as follows: + + \snippet tutorials/notepad/notepad.h all + + The following line includes QMainWindow that provides a main application + window: + + \snippet tutorials/notepad/notepad.h 1 + + The following lines declare the Notepad class in the Ui namespace, + which is the standard namespace for the UI classes generated from + .ui files by the \c uic tool: + + \snippet tutorials/notepad/notepad.h 2 + + The class declaration contains the \c Q_OBJECT macro. It must come + first in the class definition, and declares our class as a QObject. + Naturally, it must also inherit from QObject. A QObject adds several + abilities to a normal C++ class. Notably, the class name and slot + names can be queried at runtime. It is also possible to query a slot's + parameter types and invoke it. + + \snippet tutorials/notepad/notepad.h 3 + + The following lines declare a constructor that has a default argument + called \c parent. + The value 0 indicates that the widget has no parent (it is a top-level + widget). + + \snippet tutorials/notepad/notepad.h 4 + + The following line declares a virtual destructor to free the resources + that were acquired by the object during its life-cycle. According to + the C++ naming convention, destructors have the same name as the class + they are associated with, prefixed with a tilde (~). In QObject, + destructors are virtual to ensure that the destructors of derived + classes are invoked properly when an object is deleted through a + pointer-to-base-class. + + \snippet tutorials/notepad/notepad.h 5 + + The following lines declare a member variable which is a pointer to + the Notepad UI class. A member variable is associated with a specific + class, and accessible for all its methods. + + \snippet tutorials/notepad/notepad.h 6 + + \section2 Notepad Source File + + The source file that the wizard generated for the Notepad class looks + as follows: + + \quotefromfile tutorials/notepad/notepad.cpp + \skipto notepad.h + \printuntil ui->textEdit->setFont(font) + \printuntil } + + The following lines include the Notepad class header file that was + generated by the wizard and the UI header file that was generated + by the \c uic tool: + + \quotefromfile tutorials/notepad/notepad.cpp + \skipto notepad.h + \printuntil ui_notepad + + The following line defines the \c {Notepad} constructor: + + \skipto Notepad::Notepad + \printline Notepad::Notepad + + The following line calls the QMainWindow constructor, which is + the base class for the Notepad class: + + \printline QMainWindow + + The following line creates the UI class instance and assigns it to + the \c ui member: + + \printline ui(new + + The following line sets up the UI: + + \quotefromfile tutorials/notepad/notepad.cpp + \skipto ui->setupUi + \printline ui->setupUi(this) + + In the destructor, we delete the \c ui: + + \skipto Notepad::~Notepad + \printuntil } + + In order to have the text edit field occupy the whole screen, we add + \c setCentralWidget to the main window. + + \quotefromfile tutorials/notepad/notepad.cpp + \skipto Notepad::Notepad(QWidget *parent) + \printuntil } + + \section2 Project File + + The wizard generates the following project file, \c {notepad.pro}, for + us: + + \quotefile tutorials/notepad/notepad.pro + + The project file specifies the application name and the \c qmake + template to use for generating the project, as well as the source, + header, and UI files included in the project. + + You could also use \c qmake's \c -project option to generate the \.pro + file. Although, in that case, you have to remember to add the line + \c{QT += widgets} to the generated file in order to link against the + Qt Widgets Module. + + \b{Learn More} + + \table + \header + \li About + \li Here + \row + \li Using Qt Designer + \li \l{Qt Designer Manual} + \row + \li Layouts + \li \l{Layout Management}, + \l{Widgets and Layouts}, + \l{Layout Examples} + \row + \li The widgets that come with Qt + \li \l{Qt Widget Gallery} + \row + \li Main windows and main window classes + \li \l{Application Main Window}, + \l{Main Window Examples} + \row + \li QObjects and the Qt Object model (This is essential to + understand Qt) + \li \l{Object Model} + \row + \li qmake and the Qt build system + \li \l{qmake Manual} + \endtable + + \section1 Adding User Interaction + + + To add functionality to the editor, we start by adding menu items + and buttons on a toolbar. + + Click on "Type Here", and add the options New, Open, Save, Save as, + Print and Exit. This creates 5 lines in the Action Editor below. + To connect the actions to slots, right-click an action and select + Go to slot > triggered(), and complete the code for that given slot. + + If we also want to add the actions to a toolbar, we can assign an + icon to each QAction, and then drag the QAction to the toolbar. You + assign an icon by entering an icon name in the Icon property of the + action concerned. When the QAction has been dragged to the toolbar, + clicking the icon will launch the associated slot. + + Complete the method \c on_actionNew_triggered(): + + \quotefromfile tutorials/notepad/notepad.cpp + \skipto on_actionNew_triggered() + \printuntil } + + \c current_file is a global variable containing the file presently + being edited. + It is defined in the private part of notepad.h: + + \quotefromfile tutorials/notepad/notepad.h + \skipto private: + \printuntil currentFile; + + \c clear() clears the text buffer. + + \section2 Opening a file + + In \c notepad.ui, right click on \c actionOpen and select \c {Go to + slot} + + Complete method \c on_actionOpen_triggered(). + + \quotefromfile tutorials/notepad/notepad.cpp + \skipto on_actionOpen_triggered() + \printuntil file.close + \printuntil } + + + \c QFileDialog::getOpenFileName opens a dialog enabling you to select + a file. QFile object \c myfile has the selected \c file_name as + parameter. We store the selected file also into the global variable + \c current_file for later purposes. We open the file with \c file.open + as a readonly text file. If it cannot be opened, a warning is issued, + and the program stops. + + We define a QTextStream \c instream for parameter \c myfile. + The contents of file \c myfile is copied into QString \a text. + \c setText(text) fille the buffer of our editor with \c text. + + \c section2 Saving a file + + We create the method for saving a file in the same way as for + \l {Opening a file}, by right clicking on \c actionSave, and + selecting \c {Go to Slot}. + + \skipto Notepad::on_actionSave_triggered + \printuntil file.close + \printuntil } + + QFile object \c myfile is linked to global variable \c current_file, + the variable that contains the file we were working with. + If we cannot open \c myfile, an error message is issued and the + method stops. We create a QTextStream \c outstream. The contents + of the editor buffer is converted to plain text, and then written + to \c outstream. + + \section2 Saving a file with \c {Save as} + + \skipto Notepad::on_actionSave_as_triggered + \printuntil file.close + \printuntil } + + This is the same procedure as for \c {Saving a file}, the only + difference being that here you need to enter a new file name for + the file to be created. + + + \section2 Print a File + + If you want to use print functionalities, you need to add + \c printsupport to the project file: + + \badcode + QT += printsupport + \endcode + + We declare a QPrinter object called \c printer. + We launch a printer dialog box and store the selected printer in + object \c printer. If we clicked on \c Cancel and did not select + a printer, the methods returns. The actual printer command is given + with \a ui->textEdit->print with our QPrinter object as parameter. + + \section2 Select a Font + + \skipto Notepad::on_actionFont_triggered + \printuntil ui->textEdit->setFont + \printline } + + We declare a boolean indicating if we did select a font with + QFontDialog. If so, we set the font with \c ui->textEdit->setFont(myfont). + + \section2 Copy, Cut, Paste, Undo, and Redo + + If you select some text, and want to copy it to the clipboard, + you call the appropriate method of ui->textEdit. The same counts + for cut, paste, undo, and redo. + + This table shows the method name to use. + + \table + \header + \li Task + \li Method called + \row + \li Copy + \li ui->textEdit->copy() + \row + \li Cut + \li ui->textEdit->cut() + \row + \li Paste + \li ui->textEdit->paste() + \row + \li Undo + \li ui->textEdit->undo() + \row + \li Redo + \li ui->textEdit->redo() + \endtable + + \b{Learn More} + + \table + \header + \li About + \li Here + \row + \li MDI applications + \li QMdiArea, + \l{MDI Example} + \row + \li Files and I/O devices + \li QFile, QIODevice + \row + \li tr() and internationalization + \li \l{Qt Linguist Manual}, + \l{Writing Source Code for Translation}, + \l{Internationalization with Qt} + \endtable + + \section1 Building and Running Notepad + + Now that you have all the necessary files, select \b Build > + \b {Build Project Notepad} to build and run the application. Qt + Creator uses \c qmake and \c make to create an executable in the + directory specified in the build settings of the project and runs + it. + + \section2 Building and Running from the Command Line + + To build the application from the command line, switch to the + directory in which you have the \c .cpp file of the application + and add the project file (suffixed .pro) described earlier. The + following shell commands then build the application: + + \badcode + qmake + make (or nmake on Windows) + \endcode + + The commands create an executable in the project directory. The + \c qmake tool reads the project file and produces a \c Makefile + with instructions on how to build the application. + The \c make tool (or the \c nmake tool) then reads the \c Makefile + and produces the executable binary. +*/ diff --git a/examples/widgets/tutorials/notepad/images/copy.png b/examples/widgets/tutorials/notepad/images/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3442c04c82253299c2489c452b67f5d07712a7 GIT binary patch literal 1633 zcmb_dX*3&H6n;re#1d32v5YO2L5r56G@(uqO;2iTELEb5ZYWK((nKZnv^q4FY76!UGzviCryWe^Dym!vM=iT@2b$^mCQdwUa z0D$x(-~;8#`bGp??)!1k19DNIdiez-1Y%yYjTMww9npdME)?Eh%7}d^EvW+$**!(B?ZkpDLv`)pXk)AGcITf5y;YpSvg3vGT+uP*F8IQgXve(I%#tRt=22M0 zjRKEui7VB8N$FGHJP^JMiL`uSrBNbg*zrT9iVnT*#HfzXjOSFpfoUw8gV1Ge&A?df zJ*SSAFy7YGG)!Z;EgQ(PNSDD2HcO|?eOvH$*&oLnW2WVbZau6_$@y|UYq!C0e#5nl^_3D& zk8wb@xpfeY=I9-JgnE3XwQb$m0VCw4jLUc# zv$d_IJ^?h_p^uUU*uv~b99sf7#vYgR3L0R`@#-nuYl(&j@c}fxBbeg^2Q- zXP*tOwN5?xa|hJV7ZPW|pye+HsLS{j8`&D~{4G4_t=h7@(1EP{m%f=05bqX*+)>6Dnr3Y=BM|CE|Pf2VEd>=97jKrw@GHMx`qc7HnFG9c)M<>K>_s zpEks%YFE~arh#53mf8ru@km=iy+S=ft;ei4F?j@WTb$BJ79a$0O5G&f0Vdiu;r7>) zdA{9=`Bmw!g@c@YR@#)_XhTf%p40_tlOEs>&ot2RPRf*ea!nG>jmN)%FG)i^MAW{m4nh~s}&aMP24y|0KFamYA8Bob3$YZgoN z(6ju={yEt&e0kJrTt>S%k8m7?I28@e3whSSV-Bkuh1{gGVw&mS_ZawQ8%?IZ88&V1 z>RP1vEq+onk5Wwm?&OdV7diRa23Jkf%I+F>yN(utF+SX+`2Pa$a6fb9)g7*F#d>f5 z>Q>?8;Ri5%PrJ6IZ2#-wB#({iko!s+B$ymO7_MgzJa%HGMem~8i6lT-(1&vvoQvR8 zL$rFkjfq=W$IhhY#F(cu!wKBIdTJ~z>O3toDQ13xQ zL8h9>KpF2;`q|Je@xBseRt##}4VzzlH7{?bA1p^zLF5m&KYZPpRWmM&T}oUTuw)Sj zH)bc>FMhiwePlu`>S{Ed^_o!~Z1Z7d<-AIdXZ_2dfB)f%{C8uhr|I=acigUzkk1I< M=S{-bdr{K<1`EB>T>t<8 literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/create.png b/examples/widgets/tutorials/notepad/images/create.png new file mode 100644 index 0000000000000000000000000000000000000000..fdfd4b438ac3ff20c096a3b4aaea24f29dce30b7 GIT binary patch literal 459 zcmV;+0W|)JP)4h(;oc2OFO2qAKEa&k#8R8=L=G%uiZ=Ii>U=$?aSbv_E7osw$ZSY{u_GSho9Wb-n2Eya4;+*JrmI zE>k=Yz+dq{#}=P9AWHm4^BkxXw)ivwQR8dF1(@U00vr-w9j~$lI5a*}0G9a709fNQ z0f-YX91u5NC?JV=VSuFKg#eO_=MG3Zo+}`Yc&>nnQ^e}wB++=TfMq|A&)(Ti1ZzAu zfH|51P7ZK#TZlOE{9eGUVETBvg@_x^4M6n*u5Pb?5zBra6Q>wEo*Urq{svSpplViN zj;67rh5W>6odk$J2@rh}Ao?Ug^!;yuoSfY8>>H^~D{%*64=w-z002ovPDHLkV1h!* B%!L2| literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/cut.png b/examples/widgets/tutorials/notepad/images/cut.png new file mode 100644 index 0000000000000000000000000000000000000000..74b15301ff15ff77128513154b332d3c67ef8a71 GIT binary patch literal 9554 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 literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/edit_undo.png b/examples/widgets/tutorials/notepad/images/edit_undo.png new file mode 100644 index 0000000000000000000000000000000000000000..852f5e3b298044a8625d5bae41f2e327f3144eb5 GIT binary patch literal 8424 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 literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/font.png b/examples/widgets/tutorials/notepad/images/font.png new file mode 100644 index 0000000000000000000000000000000000000000..925e501c03d6880950fc52a3bd047740561469e8 GIT binary patch literal 6983 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 vAfgpW@*MSqvQBa);00000NkvXXu0mjf)u#LS literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/new.png b/examples/widgets/tutorials/notepad/images/new.png new file mode 100644 index 0000000000000000000000000000000000000000..b24edc5d0cf21af413a16f285a9fa4ba2db3f73e GIT binary patch literal 7422 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 literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/paste.png b/examples/widgets/tutorials/notepad/images/paste.png new file mode 100644 index 0000000000000000000000000000000000000000..c50dbd95b2bea80c21856dba62c7ee89330585ee GIT binary patch literal 3597 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 dpin6BVA_wI)m0!v5$ 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 FV1kc9>)`+Z literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/images/save_as.png b/examples/widgets/tutorials/notepad/images/save_as.png new file mode 100644 index 0000000000000000000000000000000000000000..604057432233c9e8330c9f97cdf3a369bccde65a GIT binary patch literal 8209 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 DeGM(O literal 0 HcmV?d00001 diff --git a/examples/widgets/tutorials/notepad/main.cpp b/examples/widgets/tutorials/notepad/main.cpp new file mode 100644 index 00000000000..20bcdaa7df9 --- /dev/null +++ b/examples/widgets/tutorials/notepad/main.cpp @@ -0,0 +1,61 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "notepad.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication EditorApp(argc, argv); + Notepad Editor; + Editor.show(); + + return EditorApp.exec(); +} diff --git a/examples/widgets/tutorials/notepad/notepad.cpp b/examples/widgets/tutorials/notepad/notepad.cpp new file mode 100644 index 00000000000..b4f6cf7f8f7 --- /dev/null +++ b/examples/widgets/tutorials/notepad/notepad.cpp @@ -0,0 +1,182 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "notepad.h" +#include "ui_notepad.h" + +Notepad::Notepad(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::Notepad) +{ + ui->setupUi(this); + this->setCentralWidget(ui->textEdit); +} + +Notepad::~Notepad() +{ + delete ui; +} + +void Notepad::on_actionNew_triggered() +{ + currentFile.clear(); + ui->textEdit->setText(QString()); +} + +void Notepad::on_actionOpen_triggered() +{ + QString fileName = QFileDialog::getOpenFileName(this, "Open the file"); + QFile file(fileName); + currentFile = fileName; + if (!file.open(QIODevice::ReadOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot open file: " + file.errorString()); + return; + } + setWindowTitle(fileName); + QTextStream in(&file); + QString text = in.readAll(); + ui->textEdit->setText(text); + file.close(); +} + +void Notepad::on_actionSave_triggered() +{ + QString fileName; + // If we don't have a filename from before, get one. + if (currentFile.isEmpty()) { + fileName = QFileDialog::getSaveFileName(this, "Save"); + currentFile = fileName; + } else { + fileName = currentFile; + } + QFile file(fileName); + if (!file.open(QIODevice::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + return; + } + setWindowTitle(fileName); + QTextStream out(&file); + QString text = ui->textEdit->toPlainText(); + out << text; + file.close(); +} + +void Notepad::on_actionSave_as_triggered() +{ + QString fileName = QFileDialog::getSaveFileName(this, "Save as"); + QFile file(fileName); + + if (!file.open(QFile::WriteOnly | QFile::Text)) { + QMessageBox::warning(this, "Warning", "Cannot save file: " + file.errorString()); + return; + } + currentFile = fileName; + setWindowTitle(fileName); + QTextStream out(&file); + QString text = ui->textEdit->toPlainText(); + out << text; + file.close(); +} + +void Notepad::on_actionPrint_triggered() +{ + QPrinter printDev; + QPrintDialog dialog(&printDev, this); + if (dialog.exec() == QDialog::Rejected) + return; + ui->textEdit->print(&printDev); +} + +void Notepad::on_actionExit_triggered() +{ + QCoreApplication::quit(); +} + +void Notepad::on_actionCopy_triggered() +{ + ui->textEdit->copy(); +} + +void Notepad::on_actionCut_triggered() +{ + ui->textEdit->cut(); +} + +void Notepad::on_actionPaste_triggered() +{ + ui->textEdit->paste(); +} + +void Notepad::on_actionUndo_triggered() +{ + ui->textEdit->undo(); +} + +void Notepad::on_actionRedo_triggered() +{ + ui->textEdit->redo(); +} + +void Notepad::on_actionFont_triggered() +{ + bool fontSelected; + QFont font = QFontDialog::getFont(&fontSelected, this); + if (fontSelected) + ui->textEdit->setFont(font); +} diff --git a/examples/widgets/tutorials/notepad/notepad.h b/examples/widgets/tutorials/notepad/notepad.h new file mode 100644 index 00000000000..f688df45ac9 --- /dev/null +++ b/examples/widgets/tutorials/notepad/notepad.h @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the documentation of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef NOTEPAD_H +#define NOTEPAD_H + +//! [all] +//! [1] +#include +//! [1] + +//! [2] +QT_BEGIN_NAMESPACE +namespace Ui { +class Notepad; +} +QT_END_NAMESPACE +//! [2] + +//! [3] +class Notepad : public QMainWindow +{ + Q_OBJECT +//! [3] + +//! [4] +public: + explicit Notepad(QWidget *parent = 0); +//! [4] +//! [5] + ~Notepad(); +//! [5] + +private slots: + void on_actionNew_triggered(); + + void on_actionOpen_triggered(); + + void on_actionSave_triggered(); + + void on_actionSave_as_triggered(); + + void on_actionPrint_triggered(); + + void on_actionExit_triggered(); + + void on_actionCopy_triggered(); + + void on_actionCut_triggered(); + + void on_actionPaste_triggered(); + + void on_actionUndo_triggered(); + + void on_actionRedo_triggered(); + + void on_actionFont_triggered(); + +//! [6] +private: + Ui::Notepad *ui; + QString currentFile; +//! [6] +}; +//! [all] + +#endif // NOTEPAD_H diff --git a/examples/widgets/tutorials/notepad/notepad.pro b/examples/widgets/tutorials/notepad/notepad.pro new file mode 100644 index 00000000000..7369dbc9915 --- /dev/null +++ b/examples/widgets/tutorials/notepad/notepad.pro @@ -0,0 +1,20 @@ +TEMPLATE = app +TARGET = notepad + +QT += printsupport + +SOURCES += \ + main.cpp\ + notepad.cpp + +HEADERS += notepad.h + +FORMS += notepad.ui + +RESOURCES += \ + notepad.qrc + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/widgets/tutorials/notepad +INSTALLS += target + diff --git a/examples/widgets/tutorials/notepad/notepad.qrc b/examples/widgets/tutorials/notepad/notepad.qrc new file mode 100644 index 00000000000..ec11679f133 --- /dev/null +++ b/examples/widgets/tutorials/notepad/notepad.qrc @@ -0,0 +1,19 @@ + + + images/copy.png + images/create.png + images/cut.png + images/edit_redo.png + images/edit_undo.png + images/exit.png + images/font.png + images/info.png + images/new.png + images/open.png + images/paste.png + images/pencil.png + images/print.png + images/save.png + images/save_as.png + + diff --git a/examples/widgets/tutorials/notepad/notepad.ui b/examples/widgets/tutorials/notepad/notepad.ui new file mode 100644 index 00000000000..d197a95fe7f --- /dev/null +++ b/examples/widgets/tutorials/notepad/notepad.ui @@ -0,0 +1,196 @@ + + + Notepad + + + + 0 + 0 + 524 + 300 + + + + Notepad + + + + + + + + + + + + 0 + 0 + 524 + 25 + + + + + File + + + + + + + + + + + + Edit + + + + + + + + + + + + + + + TopToolBarArea + + + false + + + + + + + + + + + + + + + + + + + + + :/images/new.png:/images/new.png + + + New + + + + + + :/images/open.png:/images/open.png + + + Open + + + + + + :/images/save.png:/images/save.png + + + Save + + + + + + :/images/save_as.png:/images/save_as.png + + + Save as + + + + + + :/images/print.png:/images/print.png + + + Print + + + + + + :/images/exit.png:/images/exit.png + + + Exit + + + + + + :/images/copy.png:/images/copy.png + + + Copy + + + + + + :/images/cut.png:/images/cut.png + + + Cut + + + + + + :/images/paste.png:/images/paste.png + + + Paste + + + + + + :/images/edit_undo.png:/images/edit_undo.png + + + Undo + + + + + + :/images/edit_redo.png:/images/edit_redo.png + + + Redo + + + + + + :/images/font.png:/images/font.png + + + Font + + + + + + + + + diff --git a/examples/widgets/tutorials/tutorials.pro b/examples/widgets/tutorials/tutorials.pro index 2eb87cdbd58..0aaa119d8f9 100644 --- a/examples/widgets/tutorials/tutorials.pro +++ b/examples/widgets/tutorials/tutorials.pro @@ -1,2 +1,2 @@ TEMPLATE = subdirs -SUBDIRS += addressbook widgets modelview gettingStarted +SUBDIRS += addressbook widgets modelview gettingStarted notepad