From e5b88a2d0937eb00deb9be3da895a60eeda90f8c Mon Sep 17 00:00:00 2001 From: levinsv <44033647+levinsv@users.noreply.github.com> Date: Mon, 12 Nov 2018 22:36:21 +0500 Subject: [PATCH] Add F4 key Open object --- README.md | 10 +++++++-- Release/pgAdmin3.exe | Bin 8936448 -> 8936448 bytes ctl/ctlTree.cpp | 16 ++++++++++---- dlg/dlgFunction.cpp | 1 - dlg/dlgProperty.cpp | 5 +++++ frm/frmQuery.cpp | 46 ++++++++++++++++++++++++++++++++++++++++- include/ctl/ctlTree.h | 2 +- include/frm/frmQuery.h | 1 + include/frm/menu.h | 1 + 9 files changed, 73 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index df9f7f2..ae35d22 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,12 @@ This text Russian language. Удалено отображение узлов имеющих статус (Never execute) на закладке графического плана, но в табличном виде они присутствуют. 01.11.2018 -Добавлено отображение publications -Добавлено изменение фона при при не закоммиченой транзакции +Добавлено отображение publications. +Добавлено изменение фона при при не закоммиченой транзакции. У Commit/Rollback измененены горячие клавиши + +11.12.2018 +Добавлен поиск в дереве по F4 выделеного текста и если объект найден то его открытие. +Если запрос длится более 2 минут то после завершения запроса окно будет мигать. +При открытия функции фокус устанавливается сразу на закладку Код. + diff --git a/Release/pgAdmin3.exe b/Release/pgAdmin3.exe index 43d3d04053bfe92b003f3fa9d189d11d1a1a875d..2e8e417666fea684fc660223ed41f7d830cb6287 100644 GIT binary patch delta 43334 zcma&O2Urxx`#65PdvHfT`VJjM#e#yJqS8*WW7pU)wi6pF7`q^%;)!5TUTefyVi$A9 z#f}jbOBAC??7_s3E@~2t4HdZmJG*y4O#aXJr_XY;v+um~)|q!|YT-6zDn12)40pP) zJhwTs!Roz_LJ{oHSJ82ezo$WD^c;7|j?0~G;m29Vv4#y68ivbNv$^{%N3d&~8?054 zN;Y~(ZZDfxT<=KM5N+#e!E`ZoHQ)Uj>xTY`H9(Q_|bI?%WN>T<;yL( z=?~dlKVLVl{WI1O>f3?kHt)4G%<{j+aFg3|hS-J?EZb{=VM(KR43le^*JLEau3Kcd z6F8n_Y7AYP&tTZAJq_Qs5E+)8Z`ji3}m@^|6>fUF*Xdh`3RTW zF!nrK+|ckWwzs9__|-&FUTWyn(~e=IcN%*2>dkNsTd}#Ddtc_B5Y{lMk1xX%8#4R0 zV_2UcLs7gB$E-H|IzY{E;};-BpGwqdge*8+Go}grVF>!sbSg$z&a)3_pzV zV7YboEDg`bo?%!n*RXGV62l$tZfWqD7|1bphHi-}hMAVzcXAo?M{e+xja>95#_+=w z7na?$*YNwaI}E2;>|i*Pl&$2x`j*M-738hqzIWtnBUss#hteona~ z7hGV8+R$j>IgYtyC{NW|FsBWzmNjSCzYpY&Sf0uz>2n`0|A`A-%NUNXXv4AxRfgv) z=dkRgyN2;uaSUsGpL=Na1*V%}c6J|zt6a$#F6LBOFy)5gya0~9^~msS!!3q6oqJ|e zduF2H?Isn+Tr<>sbx_F!8xCwong4j-aB|083+Al>_Wr~$`MFc~ALOEfScA`j4=g*b zhry#Dg<%dDat;qCWX2 zEcD}cJF5*}6b@#P_iM*u879o&e8Q3ChOT6Do1E&*s&u&%Pc`Sla;$RKoqEVlnrcWn z-5(8cmf_MF6~k7|G5lB*#W8zwU5XoUmQxu+XmKRR#2DsX^kOU$2YP*{w7s>wi1_9^F@DasWN z;fnH}H*&Y%yWn|qxKdI6XA=uWc~f<3toVN#MfujnA&T;5&2pFCAHaUsG55~>ub4r( za~_Ok(hT<>G-El-%dEkwY%9mD^=1tFez#MyE>{f4pQ7Jp8@!%vVYnDK#&GiaeU@8m z!5TLGd75Rpt%l(*{Ta3cle_5eMqKw?#<1(}5|&w=JN->K^P6Gcn{tM|J<5>xE}mna z7@mG;$#Ki)stkP1-wZp6U1!VeQkQ4`ilTApEcCPV`HTCmlo2Y0gleXYQw`F;NHpr+ z!^A)NDCjtm*us%N`9@sk`Wl$g#N8SG`jfX;j%ZqA1V?w3FBDm}v4D(u#7jLUtj0L% zd!<5X%Cb)_tYkcw@-yHL%X&jeL*fjVUh)7~jivBJ&3^TnEVS;VLP``tB0 z{c1I*P>7a3HO8eyDW39cA|ocN@!K^qC13iPcc8|YsKEELyKB}xBCQ}khifA^YuE!e zrdl_AodKcmL;Rqrk)PwU_hYqDpG`3*a-!vC#Bp8xDp&qFQUhm<{0vCw%UUwO0WhQi zXQ-@(lMIREo=&L&BSQvrt1&T@B?pBGKI}>>NU~;?Ubp{1tP;K9XH%SwuEkHzD-s!` z>hqi$D6k>HTq{icZbKTkvdobsqhGC|>|Gy#^i#+`v*rA&@;_N(4ZeYnKBS#ffq@Fa zVd;5=g7SKGd<`u2A)UCsNZlD9GLoA(rUra{Nr;K(@)H?QzRb=C?hI4fLBK2f5s+XE zbrA+OV_#UB<&u&n$wgg4>9D_B4gG99Lb=I$Nw+=_+0flWC=FqYJWK_ye3JpgmMi_> zQbQ7BpOc=g(3cqdtDjpG=A?s10O@FBc?ZSdmdM2Gufeng!b3^`35Q5W){<>%fc2A5 zjKN9SaBmW6$u;d&--a@sWgF@XNgIMJg}grOaU$t~-I)O^a=3LH1MdMfRlEw`zvp*xv178~`3IiBi4Xi7Ztsj5NXt;WDs`AI^!>;;X1NYM zYhX?_@29>wu*P^H-9-sEe&PH~mOm39k%VwP-d4kvMDkOfr@M==bQrQ%`C|&}~=aNf8&O$apZOSSJp%rQE)-|xkn1MDl6ia3GR`=7Fi2jYyrdy%k zZH~0#E7)dgDaqL^ zOM_wU$Obzv=Q>PYg0UUx#|Xh+viWM0HAT-&gAJdPcH9)N8o2Q}84F=b;tk7Z`Z+kf zaH=bd>2=#&ongsXlFs!xSqd?nypq}@!aC{z;x)DK%(4wdCKm!p1N1IABxAEjgrxBfAu$-&4gK3 z%4me5du$SKlFZugGGN0u$_6kwnS^m~x>UpNWYUIHZ>|;|CX)t?Q1OP%SD9?$M|ih` zbn}?`d$los$YA}Ii`ptQdxhxAQr}cR4}-I9-P~Z>PGalQz8(<5D8xHV4J5VnaDg0e zYiEcbuCx&nYFLd8BoueDWH&8`N?WBr3|mD8INbNBvs6sOiB+VRLvYu+RtnSLmPNWd zMAY*KOvAJ+G82-1j8F+pY&c@_p6bjrn3P8bvnx8n**xOziNDkbD~zr~QQyz!B`UJC zV!XJ1f3*>6a-2QE9*BdZuAPYr$*S=US^|0&ZTuzxxeKMsTQn46T)Bl#YPnw-c?wo+ zAp^Jp531nd7BZT<9S#ur6&dQC4b?_$qvEr)FYqagzo4z+jIOt_aviUQ@4g~eOpef$ zJML}L%%)S=+W?AW<970ya_k(W?U4_9obwLy0M(cvBy{KE?M=W7^=YtY59!BkwycKg zJtTljxm*PSdoj^(Mm6-@OZ;7&m33-ETULl)d{Ygndr1qI@nO|Q)FoAuq*t*6eks~Z zmI;H0aT_&I(9pw@8+339yx&ivS#<<-IzYlLmscBgei5+f02$RVuG)w^S?c@5iW^+2 zjhWi}v{BrF2z5iTE^+3wPGCGhhOxy}@Yz8UZhf)J_?&I?mNtY*VG*9NbzKWLp>#4A zZ0<;(twE(7BGLBB=5>0<^svKZoYUbd;}G%N-#RJMiz?~|%ewYlk-(agy7>~A~ zHSWJr1!KCXhC{)1C#A4<7Pp|iNllyA!tPsa1Ixr@F=SsS=yxO}Q0Ul#e8M; z(natwhP$CAr)Iu?i*_NNb1W6;&9xXeb%U zld6o+?~KK0RGEiK$)((fCMLa27_kJbW{`;|jV@Oma0A!t5w z71k!!ckKZ6PIeUAw-b~M^9qH2-x0zc>C*{L?PUF7^>^eqsOYVpCA3j1JGn~Ka{EiM z>*-5Ex)*n#;#Q+-O{S7jlx#Z$`@3o1Vf7VMo9IWqALCae{pVV76qymxYf;JghOA|2 zAIIx-aI-IIsJeqPqSX4GvG7pp_P5Fg&v@eHe#EZIh%O>xu!9Dr6jzwQ#{8)EfQ5S+ zJ35Tx>y(6P@ShRvqPC#+e4||z6l4W@+hc=l4x-w20~x}SLfDj4!Si_H&3%cWHvLeh ziZ805O+T`fd+AgK$NP~dkh&$rLOAcIv@x|FJvXHZq?&Xy>AP_=5|3=9nr6#6!h0K#+(+El-^=LBvc|%Y;fZvjgn><+j(81 zL}4gH9S#v$8-E7hCw62pg-6dS#;Qv3Q=$?7D-tabwjb?}Y>cj}koELpj5>;?a;`-P zhM(~T`J*o~DHu!_m}P-tlO!hfYB+{^?In3NM&kD*aV&j>l9Gz)6j_7HYFWq{bfmvA z=Qb6+#GWz5^bISs6-!2;yxSF_L^HK7vb2RLlgGxN^_BYG_;!*~YbS2L{t?@cA`H0k z)!z6sl`c&>z?uZkjV&GmXGJR)`1+d4r?st2KGk<}17pgIM1|2Hh50Y4KN?XpC^;LG zAOqG=v`6xWG$$}A%L=gBeg&GEc9z0~C&~lL7OrRz>Bis%7U{;&MQ-WFF*G%Ak!@DD zGwGGYVfh=%uO-G7{cyC#w6}K-F2kH5SzoQEZmWGU0L5R7jA5;b7=uVLff^e-lb4EZ zTp{(ja^6BM)3_|#^0LZA{W z(9i2FKe(F;Z9IY#62Z+ILaQ0X626{FI>3?dd1v@vyKqOLdMZ&emUaW)8}$NsZy^y7 zGoA2Kh%#zAX`xzZ_rZuEt*~Y~@nz&$2e%`21U(U!K=~`|FgJw3id2hGNP9*+*!5xX zAl0G)oOy;!U{u{$xNyp{hdH#}oSg<%!)zPCSD(45;I|dTi95194Bo9ELEQb-VbCO# zjNxwm^d9t?WEyv9Sr}AhV#oe#Ru}}VBz;_;-9ln39fYDp^;x3^!xu3CVV18%A@@a? zBP+=SyCo~a6obVH_!oT+{5N1Q6x`8*&l}Q7DHLC`T+keXJF%9W+mB12`#B{4voI)e z2|#)Nf$~how+E*JP@aE~M@OqHapfUII2@q*&4#%ytPNIKF!;MMMD@fx8m&BuqtSA< zA>3b&qtSz|Veo1_X&F?sl@f|^l+kFA2DI0)Ia7#@hQBu^YOvA8rZzythMN}$V39r> zNSLkRmr6QMcU^Rz^B&f2AV1p|X4hF)VK&U!NIG%@FIIwKBWcP_Q@^J(j14Gr4xl+7 zpc0-&soqM_Q>+ob5&6i(!=uK;i&+Iu1>OQl#_97r@Kja+tMtX>B*nilH_9h;CDY(!_+*MvM^$90C4 zfuwO~{Kamp!UU|Rq7_fhdrwE$%0%|Lt6t8^ZD7jcp0kMzZJEW~+m%MRek&{l68^Gq zlx#q_Fjuv*xk+GO+{W1!TQoMej7s6GE%}P^p+ie^>}eWin)+foI|d8w$tf;*WF>TR zAe)t#qktRxeVn1ff#g8W$xbRZAB8j+Cn2M+SHiKuq%-%;zEJoun9Q~xI-^dtLuUw! zhL9-?=a^Xue+(s|T+5jE&~zA%PnpG)FlHF}F0s+%O4B6DVDWCDIW6Aq@!ptT$)?!V z&ZvyHLBqQ)Rhcl+S6-vmjHa*@|qY-K+CRWfYnZRB%2!w zalIO#PrXB+BVUHXLX|iA)H`ewG)pYM6=oKzd`3ahan6#9IJE@sMY=$wpwJumo)m;WJD>^zu$Qsg?>)tvPbZf{YuLmIrUO~ZAZe^yFngY3ux5>e} zGU1Okq!sJh>hE_(3^T-5E0O2kFK}>~_GKl6tR*dCUEbrTl*ik4e|KJiWt{ZajHQFc zs8*p0DGSkN+)K98Uon;r5SwEz%`hfAQop4|hKO#hLSfrlVw5E{p^4hVEGgUVD5d9$s1e%>%LmeUS#U71=< zU8o=p%pkrJPW?ba>}3G`^+bi}ey$R#ejpv$%kQB5HPX#qQEzTi5excjWC`1+5*)6R zc1@O6;z*uimEzr-7=k$IHRy@~<}&)*&n->_z~t-X-QwnzI1!rCv!DLz0MkV5bup?< zC8fQ+ZoeJ_;@)0zRI1OG=F-r|yl60OMVXm$yb|LsFMO5b4k_G};*P<(Djd}hF{aoK z5Xb)d4l9{!hk+~pM~NI=Ox5&yT&5lDd8@Kzy%fSGQ2ze(-9%JLnzr|*RL*34S4yTD<(?Q?7MIpZU zhX$oJq{strjr!BFB*ahhgPc5Q?D@7Y|)fL@h6j`eak$0nO@{#ij zxO$qjlBU~gPLtkRM{ILa7uqTuma3$bMv?4pnln`Ro@-k_;DEPaHs!nsJJYZdKL zq~#za2{~7YePZ82&Kcs$y?1{LyU&nD_9NODMeEqNXj6;&>5Wi!hWK&Y@grA60^E+p zyfubbE;y`T9f34uY1Q%K&OUFU6Mo~r8jn0JOU8U`A+KdFn}aEF#kX&SxkY3-Bg6+e z{LU;NFxXlcFxX~VC$=J2IG1blosy|sK6ky1Fn7JJplK``gH8URZ-G*vlOAbjP) z_HlM_Adbe+C}Hp(+hI7xRj|j_Z}DT@Nky&#hY)lGheHTD9Hm1#{S_=@A)Y_;3LW;g zl$()+jzot_mg3=&uZ(&*SG$U4sl=~n7S0=B@r)@ZK()An=2pl^*HS<$F$J>_W)8yW z3WUCUZKttF%<28M1DVI*e84u5r{iCxX?&O>cFoF)N7&315!M~BeaDOtvJTqLWEe58 zz_tmN3@otCYpP2oYbbBXB=Ui+hKpYBf+EPclx(eM5|zfBDk>0U{%nEm$R^w?Bujq; zC6iw1PCMol8*vKzn$9?Oe6GRqa6FF#qt68GVcYYZ?6&Q{v)!0!GUbO=>98T*$KRsO zJsg0+;xeWCv=`W0Wa6k+QD_=1(?ohDaD>c zoiT^nf?n}_m|lhSVe4pgjX*_FAWgrl-nS%}I0;71xs5|ONc~Oe*(}*kVp$#;Cl~6q zVkVt-s2wVA!J74!SkW!$`bgO@*co4FjdV4FPTVYz%-#j3EGo^Ax25XnFgmOEeb7Hr z`Z6zI-y@}uy~9#3$&#FLIire$$`*D~&7$Gtn5z7GY0J*Ti5Zwamxq zSJcvklsw;qA=wMmKQMm%Vneykf-i0{t zgXv#QH2hl)CI3=Gu}KZy4e#TEQGG=mDZh+4^%RluClvjrY&<06zbv8nUzRZ9pO%o- zz1A51O~qBSF)aQsW1vOr*~4C{<=(b>RXAhT1R6(at;*A{XmnNgXiSKXV39cz#c6V< zPc0{{)^a|WET=V93)+^+bo!-V@skuoJ9-HdoqWN_>PjS?)1{5N3JyI|dU!f4^{=xl zIw!dF-dv}&-xs6LL()Ow3Lg%zHt^EViifMO)OKM1o6>TzCfODVPyhWd^E?bSHiu7* zEnlJyXP>BuW!cHjR=(x`+1St_O2kdmsj=NkyOK&VmRwvcxBn7fCWHH@z1{kky-_oh zZ0t!rd%J5Q<1uQn&h15Xd)YP2ZclTH(AxEul8igrn3@B$QxP6LR(h(ANjCTb9E-yJ zg@T`&H)ECuceTUEUI^~$P%zfia$U~EI5!m6<+i@70JkvW=e*!u1@^k*k{{_;m(VU} z>*fmR9)|M_Ntl=uMp|>^Nd+7TBlEfbnHA7H97lbl-d4bnaN^q};%x<8mcVjSOLrWb zjTJZ?UN_*SDO+DDemUSJYzZgc4)Oi#1~Qn2OX1izu31q5FTzO=H&d?`dn zk-1jar7_w5>FIor46ph#XqanP{|?p}$wa^Jucfp$r3d^EejM zupowfVg2J{iYmFe@g}6jl7_xm*8h1^BOMrMq=7-)z&aUXx=SqSX}_Xg9;WBV5CVr| ziEpPJ*kb9u>4bPa44;@CU8XHFMM;w7VwC}6`$rYPbR#Y;iV?Ri36*N>uYB&9zEI5+ z(zjzY-$8p;Hug-dT6|kp0a4wEmqjCSfcs0Brp2YE;6Ye;m1#Ck`CL;-)5n4#zZzZ25?x$mpErvO+1NG<^(nw{;^C&OepYCWTFQk)#yTGVSj8Jt?u(~c zH1M8E4C+)E)M1pS93ZaQ7y>g+__+!>lRP6C9A~Xl%2V05iX5t1O0gSv$s!#lRWrUY z=RTR=aUd@D(b*em?Wz;@IJ$z~@_dez)12m%)XyO_C&?F@KOo0gzArp^K$>CHQdH@+(eg$N6Rp(Z79nCHRiHI^w(I;7n9F>z&v3hf?~;ViC0R4n`G zuU z+PHM)*xTcUdF@?JGpu^55Z2LU5z8uO3CF|er?`p2hfXwS{S0AVBu$h|5xtwO%_+;UD50}msY(e7k4}D$maTPxFb-Njc1A=QS-P$mZm$P~|fz`Vg z8(8ODp`bnhEY z#b;$*#U8hIC2JTi0hORN*`qZnbT5{hVKD^-@w_V(^yW4EH54+sz-LBR{yxT*S*21> zUNsD6^x@s;W`WP4*$}=LGaPcp^Tb(O9cY?CI#nn`jsRvN@52Qs6)B!vBUT<*guc=gu-FGqn)yAEnwIB zfVogLj9<^Jg>|3tL6QuB8P5B7j{gU%Yiq@Vsk&LzxZm*Kj@p@{lU%K7zN07bEx<@aJ&e3RaEa+d}gZ z_~9Y_kTw#zeK4GNWHtdAiDioL6Eh9?QGB43Z@-y_V{}q`I;9v+kK`NVjl+_INAlj_ zK8m-u+1$u1;mr^{ig$yrNAm8DGmNffrS)`~1Y;)fJot^~-QoR6tiNCsAIW?TFGrb$ z*kLr^2g*j__sygECQvpK_bOJ6<{jbDXe4r70^ge10<98IN2Q~&{PF~(!hQ^X-<81o zL(2rz__YKqNUahkB_K$PF?=xiB%pHhVd@yZt6gD?S$dd)qA|R$T}7=qV5&|}%o=d| z94V8i==C{2iUHX7IUnXb1-CiL_C!;kDj*ed$MVe}bu@1wSrt$B(V_6tK2dinRd+)O z9fv|p7{WWK(Q+x=64}7Fzx>n&(j^0jv19pG(45MD*Er<-_i@Pij}u0L@J$^!V)WG zQd|7>DXDsy)Vt$(M_1H}G1(S5B_~2U7Fa;q~ z_y9I>2An`>7@@<8G?P%uD|CE&7&ysnRe$3LCJ!7Z@iFk8=FXpl;5`$0d%Kg}%{5?( zqHDx_3#$^*T7wd?&_?K$$ajV2lhOSyUKnS%9x4JW7YF^=0m5$o5o z{k56Ow_$e3avb#ZQ#tOeZFic(^l3=0IF)Y)-%djo<}Ktsm8h=WkTi{tcHHv``rR^m zg!hC|Xx^Zi&MTR{v?4cXKAjI!?h~&R!=&l_5Uc%SQt?w`R#pM{B;khT->37faZ{Ej z@JW1snGeujI2(KU%~o{+kX%=E|7IJfE$ zT$;&;z_q2kV;t>E6jXLf!^;Q;3nX z5n>;dry%b2GK7TtV{epvOT-6HDa1CIHJfkbcuHnb?xHEnl#rG(+>9@HSJpimYG(5R zu>XrXN`m^DQCZDF5bvI_;tK?co%0Dj55GWqaw&*KfAE`wAlGCNiJ()x%vhSwMS?!U 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 delta 41534 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

Kt~ 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 diff --git a/ctl/ctlTree.cpp b/ctl/ctlTree.cpp index 6a33309..51a9e4e 100644 --- a/ctl/ctlTree.cpp +++ b/ctl/ctlTree.cpp @@ -25,7 +25,7 @@ BEGIN_EVENT_TABLE(ctlTree, wxTreeCtrl) END_EVENT_TABLE() -wxTreeItemId ctlTree::FindItem(const wxTreeItemId &idParent, const wxString &prefixOrig) +wxTreeItemId ctlTree::FindItem(const wxTreeItemId &idParent, const wxString &prefixOrig, const bool full ) { // match is case insensitive as this is more convenient to the user: having // to press Shift-letter to go to the item starting with a capital letter @@ -37,7 +37,7 @@ wxTreeItemId ctlTree::FindItem(const wxTreeItemId &idParent, const wxString &pre // pressing it) but we shouldn't jump to the next one if the user is // continuing to type as otherwise he might easily skip the item he wanted wxTreeItemId id = idParent; - + int le=prefix.length(); if ( prefix.length() == 1 ) { wxCookieType cookie; @@ -61,7 +61,11 @@ wxTreeItemId ctlTree::FindItem(const wxTreeItemId &idParent, const wxString &pre // look for the item starting with the given prefix after it while ( id.IsOk() && ( ( GetItemText(id) == wxT("Dummy") && !GetItemData(id) ) || - !GetItemText(id).Lower().StartsWith(prefix) )) + !( (!full&&GetItemText(id).Lower().StartsWith(prefix)) || + (full && //GetItemText(id).Lower().StartsWith(prefix) && GetItemText(id).length()==le) + GetObject(id)->GetName()==prefix ) + ) + )) { wxCookieType cookie; if ( HasChildren(id) ) @@ -110,7 +114,11 @@ wxTreeItemId ctlTree::FindItem(const wxTreeItemId &idParent, const wxString &pre // and try all the items (stop when we get to the one we started from) while ( id.IsOk() && id != idParent && (( GetItemText(id) == wxT("Dummy") && !GetItemData(id) ) || - !GetItemText(id).Lower().StartsWith(prefix) )) + !((!full&&GetItemText(id).Lower().StartsWith(prefix)) || + (full && //GetItemText(id).Lower().StartsWith(prefix) && GetItemText(id).length()==le) + GetObject(id)->GetName()==prefix ) + ) + )) { wxCookieType cookie; if ( HasChildren(id) ) diff --git a/dlg/dlgFunction.cpp b/dlg/dlgFunction.cpp index 7cba8f2..a4256fd 100644 --- a/dlg/dlgFunction.cpp +++ b/dlg/dlgFunction.cpp @@ -155,7 +155,6 @@ dlgFunction::dlgFunction(pgaFactory *f, frmMain *frame, pgFunction *node, pgSche txtSqlBox->SetMarginType(1, wxSTC_MARGIN_NUMBER); txtSqlBox->SetMarginWidth(1, ConvertDialogToPixels(wxPoint(16, 0)).x); } - btnAdd->Disable(); btnRemove->Disable(); btnChange->Disable(); diff --git a/dlg/dlgProperty.cpp b/dlg/dlgProperty.cpp index 7381729..888e737 100644 --- a/dlg/dlgProperty.cpp +++ b/dlg/dlgProperty.cpp @@ -339,6 +339,11 @@ int dlgProperty::Go(bool modal) wxString typeName = factory->GetTypeName(); SetTitle(wxString(wxGetTranslation(typeName)) + wxT(" ") + GetObject()->GetFullIdentifier()); + if (typeName==wxT("Function")) { + if (nbNotebook) + nbNotebook->SetSelection(4); + } + } else { diff --git a/frm/frmQuery.cpp b/frm/frmQuery.cpp index 7889b5b..9a3d4e5 100644 --- a/frm/frmQuery.cpp +++ b/frm/frmQuery.cpp @@ -39,6 +39,7 @@ #include "dlg/dlgAddFavourite.h" #include "dlg/dlgManageFavourites.h" #include "dlg/dlgManageMacros.h" +#include "dlg/dlgFunction.h" #include "frm/frmReport.h" #include "gqb/gqbViewController.h" #include "gqb/gqbModel.h" @@ -164,6 +165,7 @@ BEGIN_EVENT_TABLE(frmQuery, pgFrame) EVT_MENU(MNU_LF, frmQuery::OnSetEOLMode) EVT_MENU(MNU_CRLF, frmQuery::OnSetEOLMode) EVT_MENU(MNU_CR, frmQuery::OnSetEOLMode) + EVT_MENU(MNU_AUTOEDITOBJECT, frmQuery::OnAutoEditObject) EVT_MENU_RANGE(MNU_FAVOURITES_MANAGE + 1, MNU_FAVOURITES_MANAGE + 999, frmQuery::OnSelectFavourite) EVT_MENU_RANGE(MNU_MACROS_MANAGE + 1, MNU_MACROS_MANAGE + 99, frmQuery::OnMacroInvoke) EVT_ACTIVATE( frmQuery::OnActivate) @@ -320,6 +322,7 @@ frmQuery::frmQuery(frmMain *form, const wxString &_title, pgConn *_conn, const w editMenu->AppendSubMenu(formatMenu, _("F&ormat")); editMenu->Append(MNU_LINEENDS, _("&Line ends"), lineEndMenu); editMenu->Append(MNU_AUTOREPLACE_MANAGE, _("Manage autoreplace..."), _("Edit and delete autoreplace strings")); + editMenu->Append(MNU_AUTOEDITOBJECT, _("Open object\tF4"), _("Open object in brouser tree")); autoreplace = queryMacroFileProvider::LoadAutoReplace(true); @@ -2116,7 +2119,47 @@ int frmQuery::GetLineEndingStyle() return sqlQuery->GetEOLMode(); } +void frmQuery::OnAutoEditObject(wxCommandEvent &event) +{ + //parent->SetCurrentNode(parent->GetBrowser()->GetRootItem(), path); + pgObject *obj = mainForm->GetBrowser()->GetObject(mainForm->GetBrowser()->GetSelection()); + pgFunction *fun=(pgFunction *)obj;//obj->Show + //mainForm.propFactory->StartDialog(mainForm, obj); + //showMessage(obj->GetTypeName()); + //return; + if (obj->GetTypeName()==wxT("Servers")||obj->GetTypeName()==wxT("Server")||obj->GetTypeName()==wxT("Databases") + ||obj->GetTypeName()==wxT("Tablespaces")||obj->GetTypeName()==wxT("Group Roles") + ||obj->GetTypeName()==wxT("Login Roles") + ) return; + wxString databasePath = mainForm->GetNodePath(obj->GetDatabase()->GetId()); + //showMessage(databasePath); + wxString selText = sqlQuery->GetSelectedText(); + if (!selText.IsNull()) { + databasePath =databasePath +wxT("/")+ _("Schemas"); + if(!mainForm->SetCurrentNode(mainForm->GetBrowser()->GetRootItem(), databasePath)) + { + wxMessageBox(_("The specified object couldn't be found in the tree.") + databasePath); + } + //int n=mainForm->GetBrowser()->GetChildrenCount(mainForm->GetBrowser()->GetSelection(),false); + wxTreeItemId matchItem = mainForm->GetBrowser()->FindItem(obj->GetId(),selText,true); + + if (matchItem.IsOk()) { + wxString findtext= mainForm->GetBrowser()->GetItemText(matchItem); + pgObject *o=mainForm->GetBrowser()->GetObject(matchItem); + //mainForm->GetBrowser()->SelectItem(o->GetId()); + //showMessage(o->GetName().Lower()); + if (o->GetName().Lower()==selText.Lower()) { + + //obj = mainForm->GetBrowser()->GetObject(mainForm->GetBrowser()->GetSelection()); + obj=o; + if (!dlgProperty::EditObjectDialog(mainForm, 0, obj)) + mainForm->CheckAlive(); + } + } + } + +} // User-set the current EOL mode for the form void frmQuery::OnSetEOLMode(wxCommandEvent &event) { @@ -3360,7 +3403,7 @@ void frmQuery::completeQuery(bool done, bool explain, bool verbose) setTools(false); fileMenu->Enable(MNU_EXPORT, sqlResult->CanExport()); - if (!IsActive() || IsIconized()) + if ((!IsActive() || IsIconized())|| (elapsedQuery>120*1000)) RequestUserAttention(); if (!viewMenu->IsChecked(MNU_OUTPUTPANE)) @@ -3403,6 +3446,7 @@ void frmQuery::completeQuery(bool done, bool explain, bool verbose) sqlQueryExec = NULL; sqlQuery->SetFocus(); + } diff --git a/include/ctl/ctlTree.h b/include/ctl/ctlTree.h index b7700e8..90f1dcc 100644 --- a/include/ctl/ctlTree.h +++ b/include/ctl/ctlTree.h @@ -39,7 +39,7 @@ public: pgCollection *GetParentCollection(wxTreeItemId id); pgObject *FindObject(pgaFactory &factory, wxTreeItemId parent); pgCollection *FindCollection(pgaFactory &factory, wxTreeItemId parent); - wxTreeItemId FindItem(const wxTreeItemId &item, const wxString &str); + wxTreeItemId FindItem(const wxTreeItemId &item, const wxString &str, bool full = false); void NavigateTree(int keyCode); virtual ~ctlTree(); diff --git a/include/frm/frmQuery.h b/include/frm/frmQuery.h index 667d092..f3368f6 100644 --- a/include/frm/frmQuery.h +++ b/include/frm/frmQuery.h @@ -259,6 +259,7 @@ private: void showMessage(const wxString &msg, const wxString &msgShort = wxT("")); int GetLineEndingStyle(); void OnSetEOLMode(wxCommandEvent &event); + void OnAutoEditObject(wxCommandEvent &event); void SetEOLModeDisplay(int mode); void OnMacroInvoke(wxCommandEvent &event); void OnMacroManage(wxCommandEvent &event); diff --git a/include/frm/menu.h b/include/frm/menu.h index d0f3adb..9c8be6f 100644 --- a/include/frm/menu.h +++ b/include/frm/menu.h @@ -130,6 +130,7 @@ enum MNU_TOGGLEDDSQL, MNU_TOGGLEMBROWSER, MNU_AUTOREPLACE_MANAGE, + MNU_AUTOEDITOBJECT, MNU_RECENT, MNU_NEW = MNU_RECENT + 15, // leave space for recent file entries