From edc9fe6ed08f3263815af22f70567681ec30a09c Mon Sep 17 00:00:00 2001 From: Roy Qu Date: Sat, 25 Dec 2021 23:38:53 +0800 Subject: [PATCH] add options to set terminal --- RedPandaIDE/RedPandaIDE.pro | 9 + RedPandaIDE/RedPandaIDE_zh_CN.qm | Bin 108342 -> 109447 bytes RedPandaIDE/RedPandaIDE_zh_CN.ts | 923 ++++++++++-------- RedPandaIDE/compiler/compilermanager.cpp | 2 +- RedPandaIDE/debugger.cpp | 9 +- RedPandaIDE/settings.cpp | 17 + RedPandaIDE/settings.h | 4 + .../environmentprogramswidget.cpp | 46 + .../environmentprogramswidget.h | 30 + .../environmentprogramswidget.ui | 57 ++ RedPandaIDE/settingsdialog/settingsdialog.cpp | 9 + RedPandaIDE/toolsmanager.cpp | 4 + 12 files changed, 683 insertions(+), 427 deletions(-) create mode 100644 RedPandaIDE/settingsdialog/environmentprogramswidget.cpp create mode 100644 RedPandaIDE/settingsdialog/environmentprogramswidget.h create mode 100644 RedPandaIDE/settingsdialog/environmentprogramswidget.ui diff --git a/RedPandaIDE/RedPandaIDE.pro b/RedPandaIDE/RedPandaIDE.pro index 43e3feae..bb281c3f 100644 --- a/RedPandaIDE/RedPandaIDE.pro +++ b/RedPandaIDE/RedPandaIDE.pro @@ -318,6 +318,15 @@ win32: SOURCES += \ settingsdialog/environmentfileassociationwidget.cpp \ settingsdialog/projectversioninfowidget.cpp +linux: HEADERS += \ + settingsdialog/environmentprogramswidget.h + +linux: SOURCES += \ + settingsdialog/environmentprogramswidget.cpp + +linux: FORMS += \ + settingsdialog/environmentprogramswidget.ui + TRANSLATIONS += \ RedPandaIDE_zh_CN.ts diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.qm b/RedPandaIDE/RedPandaIDE_zh_CN.qm index ab0dc0f86ca568a416d2f4ca2834d9da35de0524..8c686d20feff9956a91297139e2de01434ee649b 100644 GIT binary patch delta 11076 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 delta 10309 zcmXY%cOX^&8^@o|z2}^}&b_xnifAe=k(LroqS7FRNJgZnNSj-!Z%ZoD-b<6Bk_Lr# zDeXPc&`x{(-tPJR^}6@E_ngn?`8?128OOZa!r>BOskLD~5tl|(+6Pq$^?r?())Ww0gW`6iV58^_n5;F~iS(*@e*CTE__K-iHxE)i8P8}xh7)Nw@H*r_M zE02h~Y6ClM1bY!1TteK9r9=()6L-spSfDAmn5a?pd(h^I#MXHdJ721%0lW8;KJYvw z(QB>5AyXy#H<1{$Tw<_RVrag^@OKhNO_Dfzyu_&Q5~B}D99LiBcxOLV}c?xIPGVQ(0+OWr;c>CT&du2wlVbXgxY@zgiOeMI9Xoo%V?QjBC za^gGwC3>)r_-<*i{7&Ngz%}e_iSJiM^rVRRQE&<0@e-d-C4SsS{QfiXi?WC+w-KMV zgy_d(;#Zx9OAMW2d_kXX7|A@$iO)a?t#czj6RuD@l=ze3#4MjnoVbDbVqEA?PvWn@ z2meHoq7%Zv;Wa6Iv61zyNn3G~SlcSn2RDIF{v?}Dp+rmjQ>$L(MA}Od^&6_0rs33v zJ*}jV_S`U%jVYj3%T5qw@1fS4MiZOfm0DL>6K(uXcJG3SGB=Rj_i&=eyUF1!qP4?z z>e7ZM);g8kA`cSPa+TQW4!N&D_-K+P=G3P?lbwhS`$T;fd?uRPf%+`+CIhpNB#-uM ziH8429`lQdO`1d=i&VtA$jM`yoS64<@;HgTv@npT?N(x)j*w@|M55zs!P($N^6ZdK zbYeVthK3N;dtfBMtuIx=~^z8-9fPx1U3->pkipK8>jJ8i{^Y5=Xa}7=Mkt79Arp8%6`n z)*#+5(7>Uv$lW(I(Em6r^$RrMMdx4S&EW=~FUXre2k%@;-m^krQVa6otLaNVNehXw zeiALh$amp(qH<^OCzE>*1=J9 zYfYnbOK>#5DN0>LY@m*!J3{sf;wffTJmk-oCYa?A8xc+u>Ua~qyhpLgh?fOrG^Ilh z;;AJWrknR9O1@4Bqkj-{tD?kzZ-`z^qNI87^RXK#Y4uy8=fmm0*SO%L_cU*noS5qw zTF?s@u5*u4;!B8f=g`s)xQ^*FTHX;B=@BdOik#NEBO{!QrnNEfmHQuQL+m_AYbot+ za+cUoUjyxl?hJ+4O?jQ~5-rc96PAg@lo6DlWI{AMg$hS|65WcUqWY_e^>wGyzxEN0 zjG&UsABnXeM~ALin-jL5nd>$dwI3|*JG4SPAOQ z6FVYh3wCZ;Ig#7oYGQ|jF0u>u;V_UbyO4N=*vP}|DuXMy^6Xh9`1J#;sQ5z6b_)9% zUq!5CF8if&BlaYQR^S&lj0#4o-4lADQW+O~kAp z%Pb5jL`|N^EIS}5#Rjrw6^7~^b;b+u+csH?cQ=SlI4HBbbc3iWPUbw^k|@Vr=A42X z=K9KRTldD9m<^c zvhaqxi1jR#g@+XvbgLGM2_aN$)^URIPsTF z50N2w8p;y15X_HevV`8xAb{OuvpD!lK{wgTEZoTXnrzKkoV}N?Y|Eb%V$BE1w$H=P zUz^KzKS!{cCCm0SeuX+^plnZgXJR$tWJkYkAm&jjGZzzX zf@h%Y#>OC`;B488LxUkR^JFhC`4Cm?G?E2fki7|Ke;)ai7Ecb8`#u>liiXx7~+Ww zu9CMBw`0LCil2)QUk6^_7RmpGHc2CJ!%nf=GOoN87+vk_Gv+9j_5Q zPvx^tAo`@tL~R<%-*kj5%y5u@IocDlaz_4b;Ul6AY4X1b z=i%#-@_&aRZ}vwy{z4A+U%;7IKqeD=aAqZr#AbBmEKat=$@*|s+1A9I)^QDM*F|aH zh-(w@j_9xt*RCDx=5ES$nDYyz>uAo2f8~q>FpnFi!is#iaefN8R6`TaUjZ38JDKzM zhrt{ZIRB`hD3H`#;O09x$(LMk$3sL51Jm?c>%rZ+av@Q;?~`|2IIBX+{>qIXg@km{ zgd6{JB)Ef{Acv~#2;*k@d?dP_%_TV^G}dqBlAKC#+e$8JDKcfp5!@UlX>w**ttfsTHzAS_e!+dFR|$viDSERYq~|D zCaTM=say#2E#}sB{){x{%xx{e?M=3D+uRCqE>B-_+xN~xDEe_boL%5Iqu|pFx?wBTo zm~*nk;q|!VtGB|zVz}d1;Ak&Ka{0q?0ORi($z-KmVd6n()-Udy%zziIn{by#_98a1 zlDjf#Il8uX+|^dNaNTL#wSilpveUSm9g`69XSkcOLy5x1aJOc{q!;bEdzYa>Bad>= zhs{7Wxr{3d#`O;Qa}_~0=<1xgm*J2C+j`u~mkvZz#~R7BGbN5va+LV zaP%u9St~!TavHQpe8E+&LWVU<=H48|d;dX3GS@Kf?W$sw97njHUrmvD)4AVWal_6! ziRY_$Zm$nCsfg#-VMF&!dH#eBc_*1y&&JUW`NpgF6yfuUyg{?_IWADeYX@PclV|d} zFsP*e8D4L-pJ+^bzD6s5RDq#<&9Z!=`qOw5EiO2@1K+?6zO3@+n=XQnn^p1lg9?$j zc1Y~imTz}bL@hLdZ@zE#7t3WMW}Q41B)~SYXRpzJD2< za?m4#|>3?F3j8qM(*enf4aSbZ-(tS_AE_8fkckw5scxv)gpA|si5 zoW!6Oe6$Ql7Wl+S)|TU=UEoviUVPil_5Q)zJIr|$ef)cYTw>~Nd@O4!?8+jwrf|n9z<-J(5n$ZUn#Lq8Y^I z1;6?YzBhC)zh=}zVnYh}H7i;XGbGsXYv-fxt=hq_vw|td4>pp?-1yCtuH*CW{5DH4 z^c%lpD$Z=}O@2>%84_0jzh|jC3h;Y;W)Yk*Dwf~xG#u4mF2CP@KKPK|e`q2$<|6T5 zsgX=GRN_E)PIc3kzn{usHZhEUuz5C7))fB1RdXVzEBwR#=)J-P{?T+4OWk|& zkIumYzW)4Uw^YP`UI+e3-w2#_556qa3r^w5S9JM7w0|;Rk+Bu2{SW_kBAo8?asJ(N zHL-pv{O8Od6fArSfvp~nhPF=ed#Dp+y#$J)C%|K8OcVz75sj0K-DA&0n7}QJ|_(C zxEumiR|u-Wjv~KEj87Lrtl|9y4~%5~XM_-El!b?z3!!@c>4#LX(S8$ zEldwf#)2LS#vImQxG=9-4AH-2VaXFu2uvekX&;pG11f}-x_aoFKM2)Hi#4_u)(p;r zWy^&%UwWcxyCrN$#8C}8ZxFV7c1C=66*7kTAxwgW-5Je^HL5S{t?Ne=vOw4y)Pk7) zgpgSb0a;N1hJfF|Q1ldSgafIuM9o?V2YuTUr7saq_`^x39u=85Z` zHHBcbQg|>(^XElIvXDlK{&!38-d8a&XE(}_AR}2_SH%eTB@mXjijik-qGuVQ2)9~* zddyQXO8%VazhcFx+Hmse*^1F!VF90f#h7mK$p8D>D53}8j2F*VL?5|_&V7a=#vd1+ zk*OG8eS;a5iUbT;=x4Gb@d@51G*u+Nc7a~ZP#APqkOl857M#jKIxSM9r=p)OFIJ>q zjYmOwQIY<#HL;i{iWQnFNc(yt*@%vc6<%;YYNc2e?1=b3{#mi91WHzahhlRD^1I() z#g+#gy06ZP-CfFH@;{1wV|O9GFDdp1BmTWVD-Lym6FJ^i9G(NqSTt1}&({+R-k~^t z17VqZNpWI{4Y5|{iULbGU6*l+^P6$R526&Mx2kU(rnuG)3(a|KjU9Oam z#o7FbQ7U(4VP?`(S^J3>QOp*lc~h9Y!C|GjeRrZ>mdd($cIY>|D=iCgbaS(nmeoln zFj{GS9+m5i=gRuqAjwO9DjV(dAvSuovhlexlytk5wlNU6(cP8yF7HqW>{AZ4_eJ(| zD^)tFolqioS2`7&;LLg{yPWaFczC|jIUHVXTczx?9g;espR)hMW9YtemEKC6`R_T( zA=Yr#yVI57vi4}*O_kwY7Z9_ml{TVIZ9~UAWh9TRZT?sp>5+~y;gmAgWe0{)u@bMY zQcl}}%V-0XGuoOU2Bs@#CO|+V{gg9v3y3bQP|kba2tmau7q!8ZKcks)Nn$x#oJ-1d zhE~AKQn}L13^i?>a`i(5UB*r28a|)MGDW$0#Si4R=)uZ;sc?aD@07*ar9^|>lxLeE z%YR5RlKGrhp6!X^`_nJwrTb~vPhaI_ITlnNrYso*1IN8q-nSY;bfiN0$O$(%KScSs zH55FuL|NW5A0G2gS+V^T(Xtj`AsDHAS(b=8CqnsZx;K3L(jDd7B{-p*8~}cY*D95H9$d_|N@Y=s4K#{Z)o+H+ zpKemw1l>jQOj9-M%=s(A!XdU#(|%ggv4{LOBW4R&1qPUTRD8?3sZ z>iiETPVTSjRv3@AwzI0Y4T7pu>ojwVriR^rRQ)6V67AV;B;#ULUS=ieN|&hybbSvM zs!$DZLqZ7XqVnsjgD3V=1tmFRI{ivDf=40fXrl@)KnNsiRAF_XGE?`dB2VFVCmdC= znEWw2OVy<9(C=PPREDTSm?70w&D(E{llrBa|Im>vnaN}03)XX`DtY2{qMq&&KetG` zZDDPg=&f2d8TU&$tV+v_fvlcTt&XgVDkxXArWMwCV~J{$6`Bi?skSWfBHEOw+O`wh zo*%5rxbKd?w@~fs1QB}oTD51Y9ZK^_s;u{L)M;s|qZREDaXnNg5Q3=;bW1U+N6;ST^<7nA{C&Ra#quKUa>$|z2zq(r@e)su{x?6e*{4hw}<47j4QM=SVYxjWqXLIVlU$OD_ z1?qw5eORzkJuEwf$i+h)Sg4= z2#I6=&yzik@0rsJb@*QVZp;ex=q-bZiRJ1s*+|6GCRYqlRR7(J*y}S> z{kJd;mU*pFx*=V)c&X8)Kf(y#O5%hOMlyMT#@z(daWZVxm_;r^;oiHj;W@UZnxwtcAc5AJh0cjc=UX(%J-?un8g@#P^5-cIB36^~ z7sY4MUCk2RHOvjt0S0K! zOx;b?*Ftl4|1&hD7d7V_An0qSYD!8zV1gH@xjrx&;#EuYB&!D&_*7HT3vt>H9;msjL8{;}@}+L6?H^dZE~?n%&|hKD8BXo#CpDH;XM7NMgWQ z(N63QlO7T6ieb5s+G3kFc6c-}PHZ=~Hx^PZI*%Md)ODcPV=8XEBwF;`i|cCtNF2A* zNakWMdf6lBBaey(KM$g_hB$S3Pu#GMICCLnYs5xzZVG(K_mcSE4;^a9ZQ|nJ zuw?E@aT(cQE}kH!dLb%YyBoyi7sKHUL&fx-@!&#nWj9=S*cowU^?SSFV)c_rYM3Oh z*#p6!JV#vLX)B&WwG=m0;CJp9B$gc%x6oZ=98uhQEfJ>A7WX>Bsc-ENvjPqxYTk>7 z*THg5Ix#OA;qF{RJo*l$Vgo~M@feFkeAg3?Z6AWUKpn9tcOiyS{lwG#7|!yJc;*(o zH|Vc;{Ynt#qoLyUTiEfzy5gM#n6|N>M3;3EkEz5v83^NN!Qz84aLyV9;uF`oD2bBA zCn?K`O<5v7kH!6L=ZY@^upq;qdt&9@aulrx#m`USt#xC?FLV*k_FnvU!vm9&!Q%Jo z3qIefm3R4z43ewmCU_wy-q&)=#vw(!Yq?!mn5T)h=E5k<8634H0huVm?zVwz{bevE?BgHrkNA*HI0YX(P8Gw+{ZM9et-5XZX}e z=Ix-3>R*E1u!eT*@firu{@SrcjZl5I(vCfALKIZnNY?h0Hf|1-@4`=Q+~R5$Yvapc z@`ya`^pS-a8x(41*la*+*jAfB1{)~YZf!!`V}#9R?aX?(;PXe?StqU0;JnZ-KpDmQ zS7}%F#Tf2XoOWeG271jd+O;Qq@H}dRcHQ|TlxuIb8!Wb=jCrKpivJ{`oPFBuYhi&b zl{V{DL(I;3ZE^KLGv5b12sY3bpL0gB@K#%FzzY`Wsy*Fj3F__^+A~APq5fQ@txRu> zoa&@~Q;r|r>#F^fgJd$rSNrJ+B)EmY_H#aNc(9-L#|(zL(p3AiT1jtdw7*hdp~n^4 ze`}z4W?ywwT8^>aTAe%-&etGSr`&+KMacr4W;}c@Xs}MNk9>}i%{5)^d3XYM+br#c zjkO`pO=q6ug=Yx2b#-J1@%w8!3v~?Y&pchd=yd$YgS*aZGc35Fzpi;L)WxbSopaoE zSU5)K(jWJ=+oW@M$tPO9K!jqimM+^q|8MMHKZR~LNi9VR~) zbs^_o;8E^vUFeAm=zxZ5bz?6)M;TO07vl=uIgq1^>4y!3cGAV&h0ske*UcIH2PaXb z`%e{ydi9`g!78{;d<)&OM_BlEQ{CF{kb@U`-8!F4EcB0V<7XLWSoXS%^@$KfGu_TI zA0$tv%Zx*CSe5Ax^xhZU>GgIfpCWWO`nV9) z`Juc2<^p&mrij2CX}z6x{EYJSvxJKqDY6{7nSCC4*Y2I6VK*G{^> zg-+PHonAD+a<2AzZM{&O>~nnsE67Cad-^7u3^IeKdj}*{MKe!c4J~Lk*SQnp2_el(%Br&|Vesv{;Gd^CwRvC{m!&UuS zTkMz#`t=*ZMwj$k(zc@c+@aq#AN5W4UH$g1@KsB--mvpz4lJP6=goeMX0eO@SZnO) z!&4*KkOlgJ7KKpQdis+U`N&1~`qJby{BVH&x~nP14(;@}y%8i|$LSx8h`}iOivD$H zm^NXPzVb1$@Wqk(x38f`J)-nqK5obKZ=n9i0ZRy{T>oo$U9|JBYU%%mz^THnj>ZGR zg*ZLFPMT%Q<~co@Pi$pdBU!%arf($KQUrxj2sMW=5aDP^+bcXIJ|ZGK);1z6qV9e4=`1wnK)bL6olE!(>x-*bN)qcW@(}QTjabM)4fg3q;(}9R$f@hbZII6 Rx|Lt%G1J_P#q5dI{{U^TR;T~~ diff --git a/RedPandaIDE/RedPandaIDE_zh_CN.ts b/RedPandaIDE/RedPandaIDE_zh_CN.ts index e1260249..1c42da33 100644 --- a/RedPandaIDE/RedPandaIDE_zh_CN.ts +++ b/RedPandaIDE/RedPandaIDE_zh_CN.ts @@ -95,17 +95,17 @@ BacktraceModel - + Function 函数 - + Filename 文件名 - + Line @@ -151,37 +151,37 @@ BreakpointModel - + Filename 文件名 - + Line - + Condition 条件 - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - + Can't open file '%1' for read. 无法读取文件'%1'. @@ -229,113 +229,113 @@ CharsetInfoManager - - - + + + Arabic 阿拉伯语系 - - - - + + + + Greek 希腊语系 - - - - + + + + Baltic 巴尔干语系 - - - - - - + + + + + + Western Europe 西欧语言 - - + + Central Europe 中欧语言 - - - - - - + + + + + + Cyrillic 西里尔语系 - - - - + + + + Turkish 土耳其语系 - - + + Northern Europe 北欧语系 - - - + + + Hebrew 希伯来语 - + Thai 泰语 - - + + Japanese 日语 - - - + + + Chinese 中文 - - + + Korean 韩语 - + Vietnamese 越南语 - + Eastern Europe 东欧语系 - + Celtic 凯尔特语系 @@ -667,12 +667,13 @@ 编译器配置方案 - - - - - - + + + + + + + ... ... @@ -752,72 +753,81 @@ 选项 - + + gdb + gdb + + + + gdb server + gdb server + + + Resource Compiler(windres) 资源编辑器(winres) - + C++ Compiler(g++) C++编译器(g++) - + Choose C++ Compiler 选择C++编译器 - + Choose C Compiler 选择C编译器 - + C Compiler(gcc) C编译器(gcc) - Debugger(gdb) - 调试器(gdb) + 调试器(gdb) - + Profiler(gprof) 性能分析器(gprof) - + make - + Choose make 选择make - + Choose Debugger 选择调试器 - + Choose Resource Compiler 选择资源编译器 - + Choose Profiler 选择性能分析器 - + Confirm 确认 - + Red Panda C++ will clear current compiler list and search for compilers in the following locations: '%1' '%2' @@ -828,35 +838,35 @@ Are you really want to continue? 你确定要继续吗? - - + + Failed 失败 - - + + Can't find any compiler. 找不到编译器 - - + + Compiler Set Name 编译器配置名称 - + Name 名称 - + Compiler Set Folder 编译器所在文件夹 - + New name 新名称 @@ -907,47 +917,57 @@ Are you really want to continue? + Use GDB Server to debug + 使用gdb server调试 + + + + GDB Server Port + gdb server TCP端口号 + + + Skip system header and library files when step into 单步进入时,跳过系统头文件和库文件 - + Skip project header and library files when step into 单步进入时,跳过项目头文件和库文件 - + Skip custom header and library files when step into 单步进入时,跳过自定义头文件和库文件 - + Debug Console 调试主控台 - + Font: 字体: - + Show only monospaced fonts 只显示等宽字体 - + Size: 大小: - + Show detail debug logs Show debug logs in the debug console 显示详细调试器日志 - + Show CPU Window when signal received 程序收到信号停止时缺省打开CPU窗口 @@ -956,17 +976,17 @@ Are you really want to continue? 在调试主控台中显示gdb输出注解 - + Autosave 自动保存 - + Autosave breakpoints 自动保存断点 - + Autosave watches 自动保存监视 @@ -975,27 +995,27 @@ Are you really want to continue? 反汇编代码样式 - + CPU Window CPU信息窗口 - + Disassembly Coding Style: 反汇编代码样式 - + Intel Intel - + AT&&T AT&&T - + Show disassembly code in blend mode 以混合模式显示反汇编代码 @@ -1003,47 +1023,68 @@ Are you really want to continue? Debugger - + No compiler set 无编译器设置 - + No compiler set is configured. 没有配置编译器设置。 - + Can't start debugging. 无法启动调试器 - + Debugger path error 调试路径错误 - + Debugger's path "%1" contains non-ascii characters. 调试路径"%1"中包含非ASCII字符(如,中文字符) - + + This prevents it from executing. 这会导致调试器无法启动。 - + Debugger not exists 找不到调试器 - + Can''t find debugger in : "%1" 找不到调试器程序"%1" - + + GDB Server path error + gdb server路径错误 + + + + GDB Server's path "%1" contains non-ascii characters. + gdb server的路径"%1"包含中文或者全角字符 + + + + GDB Server not exists + 找不到gdb server + + + + Can''t find gdb server in : "%1" + 无法在"%1"找到gdb server + + + Execute to evaluate 执行以求值 @@ -1052,22 +1093,22 @@ Are you really want to continue? 不在当前语境中 - + Compile 编译 - + Source file is more recent than executable. 源文件比程序文件新。 - + Recompile? 重新编译? - + Signal "%1" Received: 收到信号"%1": @@ -1944,6 +1985,34 @@ Are you really want to continue? 自动清理被隐藏的编辑器中的符号表 + + EnvironmentProgramsWidget + + + Form + 表单 + + + + ... + ... + + + + Terminal + 终端 + + + + Choose Terminal Program + 选择终端程序 + + + + All files (*.*) + 所有文件 (*.*) + + EnvironmentShortcutModel @@ -1968,7 +2037,7 @@ Are you really want to continue? ExecutableRunner - + The runner process '%1' failed to start. The runner process failed to start. 无法启动程序运行进程'%1'。 @@ -1978,17 +2047,17 @@ Are you really want to continue? 程序运行进程启动后崩溃。 - + The last waitFor...() function timed out. waitFor()函数等待超时。 - + An error occurred when attempting to write to the runner process. 在向程序运行进程写入内容时出错。 - + An error occurred when attempting to read from the runner process. 在从程序运行进程读取内容时出错。 @@ -3069,7 +3138,7 @@ Are you really want to continue? - + Debug Console 调试主控台 @@ -3145,7 +3214,7 @@ Are you really want to continue? 工具栏2 - + New 新建 @@ -3203,8 +3272,8 @@ Are you really want to continue? - - + + Compile 编译 @@ -3250,8 +3319,8 @@ Are you really want to continue? - - + + Copy 复制 @@ -3262,7 +3331,7 @@ Are you really want to continue? - + Paste 粘贴 @@ -3273,7 +3342,7 @@ Are you really want to continue? - + Select All 选择全部 @@ -3393,14 +3462,14 @@ Are you really want to continue? - + Problem Set 试题集 - + New Problem Set 新建试题集 @@ -3419,14 +3488,14 @@ Are you really want to continue? - + Save Problem Set 保存试题集 - + Load Problem Set 载入试题集 @@ -3462,7 +3531,7 @@ Are you really want to continue? - + Problem 试题 @@ -3888,13 +3957,13 @@ Are you really want to continue? - + Export As RTF 导出为RTF - + Export As HTML 导出为HTML @@ -4014,7 +4083,7 @@ Are you really want to continue? - + Open Folder 打开文件夹 @@ -4024,42 +4093,42 @@ Are you really want to continue? 运行参数... - + File Encoding 文件编码 - + Recent Files 文件历史 - - - - - - + + + + + + Debugging 正在调试 - - - - - - + + + + + + Running 正在运行 - - - - - - + + + + + + Compiling 正在编译 @@ -4068,188 +4137,188 @@ Are you really want to continue? 行:%1 列:%2 已选择:%3 总行数:%4 总长度:%5 - + Line:%1 Col:%2 Selected:%3 Lines:%4 Length:%5 Line: %1 Col: %2 Selected: %3 Lines: %4 Length: %5 行: %1 列: %2 已选择 :%3 总行数: %4 总长度: %5 - + Read Only 只读 - + Insert 插入 - + Overwrite 覆写 - + Close project 关闭项目 - + Are you sure you want to close %1? 你确定要关闭'%1'吗? - - + + Confirm 确认 - - - + + + Source file is not compiled. 源文件尚未编译。 - - + + Compile now? 现在编译? - - + + Source file is more recent than executable. 源文件比可执行程序新。 - + Recompile now? 重新编译? - + No compiler set 无编译器设置 - + No compiler set is configured. 没有配置编译器设置。 - + Can't start debugging. 无法启动调试器 - - + + Enable debugging 启用调试参数 - - + + You have not enabled debugging info (-g3) and/or stripped it from the executable (-s) in Compiler Options.<BR /><BR />Do you want to correct this now? 当前编译设置中未启用调试选项(-g3),或启用了信息剥除选项(-s)<br /><br/>是否纠正这一问题? - + Project not built 项目尚未构建 - + Project hasn't been built. Build it now? 项目尚未构建。是否构建? - + Host applcation missing 宿主程序不存在 - + DLL project needs a host application to run. 动态链接库(DLL)需要一个宿主程序来运行。 - + But it's missing. 但它不存在。 - + Host application not exists 宿主程序不存在 - + Host application file '%1' doesn't exist. 宿主程序'%1'不存在。 - + Recompile? 重新编译? - - + + Save last open info error 保存上次打开信息失败 - + Can't remove old last open information file '%1' 无法删除旧上次打开信息文件'%1' - + Can't save last open info file '%1' 无法保存上次打开信息文件'%1' - + Load last open info error 载入上次打开信息失败 - + Can't load last open info file '%1' 无法载入上次打开信息文件'%1' - + Show detail debug logs 显示详细调试器日志 - + Copy all 全部复制 - - + + Clear 清除 - + Export 导出 - + Insert Snippet 插入代码段 - - + + Problem Set %1 试题集%1 @@ -4270,73 +4339,73 @@ Are you really want to continue? 或者选择使用其他的网络端口。 - + Red Panda Dev-C++ 小熊猫Dev-C++ - - + + Rebuild Project 重新构建项目 - - + + Project has been modified, do you want to rebuild it? 项目已经被修改过,是否需要重新构建? - + Auto Save Error 自动保存出错 - + Auto save "%1" to "%2" failed:%3 自动保存"%1"到"%2"失败:%3 - + Properties... 试题属性... - + Set Problem Set Name 设置试题集名称 - + Problem Set Name: 试题集名称: - + Remove 删除 - + Remove All Bookmarks 删除全部书签 - + Modify Description 修改描述 - - - + + + Bookmark Description 书签描述 - - - + + + Description: 描述: @@ -4345,119 +4414,119 @@ Are you really want to continue? 在调试主控台中显示调试器输出 - + Remove this search 清除这次搜索 - + Clear all searches 删除所有搜索 - + Breakpoint condition... 断点条件... - + Break point condition 断点条件 - + Enter the condition of the breakpoint: 输入当前断点的生效条件: - + Remove All Breakpoints Remove all breakpoints 删除所有断点 - + Remove Breakpoint 删除当前断点 - + Rename File 重命名文件 - - + + Add Folder 添加文件夹 - + New folder 新文件夹 - + Folder name: 文件夹: - + Rename Folder 重命名 - + Remove Folder 删除文件夹 - + Sort By Type 按类型排序 - + Sort alphabetically 按名称排序 - + Show inherited members 显示继承的成员 - + Goto declaration 跳转到声明处 - + Goto definition 跳转到定义处 - + Open in Editor 在编辑器中打开 - + Open in External Program 使用外部程序打开 - + Open in Terminal 在终端中打开 - + Open in Windows Explorer 在Windows浏览器中打开 - + Character sets 字符集 @@ -4499,7 +4568,7 @@ Are you really want to continue? - + Do you want to save it? 需要保存吗? @@ -4523,7 +4592,7 @@ Are you really want to continue? - + Save Error 保存失败 @@ -4653,68 +4722,68 @@ Are you really want to continue? 新名称 - - + + Replace Error 替换出错 - + Can't open file '%1' for replace! 无法打开文件'%1'进行替换! - + Contents has changed since last search! 内容和上次查找时不一致。 - + Rich Text Format Files (*.rtf) RTF格式文件 (*.rtf) - + HTML Files (*.html) HTML文件 (*.html) - + The current problem set is not empty. 当前的试题集不是空的。 - + Problem %1 试题%1 - - + + Problem Set Files (*.pbs) 试题集文件 (*.pbs) - + Load Error 载入失败 - + Problem Case %1 试题案例%1 - - - - - - - - - + + + + + + + + + @@ -4725,7 +4794,7 @@ Are you really want to continue? 错误 - + Recent Projects 项目历史 @@ -5640,7 +5709,7 @@ Are you really want to continue? QApplication - + Error 错误 @@ -5694,196 +5763,196 @@ Are you really want to continue? - - + + Error 错误 - + Can't create configuration folder %1 无法创建配置文件夹"%1" - + Can't write to configuration file %1 无法写入配置文件夹"%1" - + Can't load autolink settings 无法载入自动链接设置 - - - - + + + + The following %1 directories don't exist: 下列%1文件夹不存在: - - + + binary 二进制 - + No %1 directories have been specified. 未指定%1文件夹 - + C include C包含 - - + + C++ include C++包含 - - - - + + + + Cannot find the %1 "%2" 无法找到%1程序"%2" - + C options C语言选项 - + Support all ANSI standard C programs (-ansi) 支持所有ANSI标准C程序(-ansi) - + Do not recognize asm,inline or typeof as a keyword (-fno-asm) 不支持将asm、inline和typeof作为关键字(-fno-asm) - + Imitate traditional C preprocessors (-traditional-cpp) 模仿传统C预处理器行为(-traditional-cpp) - + Code Generation 代码生成 - + Optimize for the following machine (-march) 生成特定机器的专用指令(-march) - + Optimize less, while maintaining full compatibility (-tune) 完整兼容特定机器,较少优化(-tune) - + Enable use of specific instructions (-mx) 启用特定指令集(-mx) - + Optimization level (-Ox) 优化级别(-Ox) - + Compile with the following pointer size (-mx) 使用下列指针大小编译(-mx) - + Language standard (-std) 语言标准(-std) - + Profile 性能分析 - + Generate debugging information (-g3) 生成调试信息(-g3) - + Generate profiling info for analysis (-pg) 生成性能分析信息(-pg) - + Warnings 代码警告 - + Inhibit all warning messages (-w) 忽略所有警告信息(-w) - + Show most warnings (-Wall) 启用常见问题警告(-Wall) - + Show some more warnings (-Wextra) 启用更多问题警告(-Wextra) - + Check ISO C/C++/C++0x conformance (-pedantic) 检查ISO C/C++/C++0x语法一致性(-pedantic) - + Only check the code for syntax errors (-fsyntax-only) 只进行语法检查(不编译)(-fsyntax-only) - + Make all warnings into errors (-Werror) 将警告作为错误处理(-Werror) - + Abort compilation on first error (-Wfatal-errors) 遇到第一个错误后立即中止编译(-Wfatal-errors) - + Linker 链接器 - + Link an Objective C program (-lobjc) 链接Objective-C程序 (-lobjc) - + Do not use standard system libraries (-nostdlib) 不使用标准库和系统启动文件(-nostdlib) - + Do not create a console window (-mwindows) 不产生控制台窗口(-mwindows) - + Strip executable (-s) 剥除附加信息(-s) @@ -5892,53 +5961,53 @@ Are you really want to continue? 链接Ojbective C程序(-lobjc) - + Output 输出 - + Put comments in generated assembly code (-fverbose-asm) 在生成的汇编代码中加入注释(-fverbose-asm) - + Use pipes instead of temporary files during compilation (-pipe) 编译时使用管道而不是临时文件(-pipe) - + Do not assemble, compile and generate the assemble code (-S) 只生成汇编代码(-S) - - + + Confirm 确认 - + The following problems were found during validation of compiler set "%1": 在验证编译器设置"%1"时遇到了下列问题: - + Would you like Red Panda C++ to remove them for you and add the default paths to the valid paths? 是否让小熊猫C++删除这些配置,并尝试重新建立配置? - + Leaving those directories will lead to problems during compilation.<br /><br />Unless you know exactly what you're doing, it is recommended that you click Yes. 如果仍然保留这些设置,可能会导致编译错误。<br /><br />请选择“是”,除非您清楚的知道选择“否”的后果, - + Compiler set not configuared. 未配置编译器设置。 - + Would you like Red Panda C++ to search for compilers in the following locations: <BR />'%1'<BR />'%2'? 您需要小熊猫C++在下列位置搜索编译器吗:<br />%1<br />%2 @@ -5981,27 +6050,27 @@ Are you really want to continue? 无标题 - + Index %1 out of range 下标"%1"越界 - + bytes 字节 - + KB KB - + MB MB - + GB GB @@ -6322,12 +6391,12 @@ Are you really want to continue? RegisterModel - + Register 寄存器 - + Value @@ -6658,7 +6727,7 @@ Are you really want to continue? SettingsDialog - + Options 选项 @@ -6684,227 +6753,233 @@ Are you really want to continue? 取消 - + Appearence 外观 - - - - - + + + + + + Environment 环境 - + File Association 文件关联 - + Shortcuts 快捷键 - + Folders 文件夹 - + + Terminal + 终端程序 + + + Performance 性能 - - + + Compiler Set 编译器配置集 - - + + Compiler 编译器 - + Auto Link 自动链接 - - - - - - - + + + + + + + General 通用 - - - - - - - - - - - + + + + + + + + + + + Editor 编辑器 - + Font 字体 - + Copy & Export 复制/导出 - + Color 配色 - + Code Completion 代码补全 - + Symbol Completion 符号补全 - + Snippet 代码模板 - + Auto Syntax Checking 自动语法检查 - + Tooltips 信息提示 - + Auto save 自动保存 - + Misc 杂项 - - - - + + + + Program Runner 程序运行 - - + + Problem Set 试题集 - + Debugger 调试器 - + Code Formatter 代码排版 - + Tools 工具 - + Project Options 项目选项 - - - - - - - - - - + + + + + + + + + + Project 项目 - + Files 文件 - + Custom Compile options 自定义编译选项 - + Directories 文件夹 - + Precompiled Header 预编译头文件 - + Makefile Makefile - + Output 输出 - + DLL host DLL宿主 - + Version info 版本信息 - + Save Changes 保存修改 - + There are changes in the settings, do you want to save them before swtich to other page? 本页中有尚未保存的设置修改,是否保存后再切换到其他页? @@ -7195,34 +7270,34 @@ Are you really want to continue? 删除编译文件 - - + + Read tools config failed 读取工具配置失败 - + Can't open tools config file '%1' for read. 无法读取工具配置文件'%1' - + Read tools config file '%1' failed:%2 读取工具配置文件'%1'失败:%2 - - + + Save tools config failed 保存工具配置失败 - + Can't open tools config file '%1' for write. 无法写入工具配置文件'%1'。 - + Write to tools config file '%1' failed. Write to tool config file '%1' failed. 写入工具配置文件'%1'失败。 @@ -7231,49 +7306,49 @@ Are you really want to continue? WatchModel - + Save file '%1' failed. 保存文件'%1'失败。 - + Can't open file '%1' for write. 无法写入文件'%1'. - + Error in json file '%1':%2 : %3 JSON文件'%1':%2中存在错误:%3 - - + + Execute to evaluate 执行以求值 - - + + Not Valid 在当前作用域中无效 - + Can't open file '%1' for read. 无法读取文件'%1'. - + Expression 表达式 - + Type 类型 - + Value diff --git a/RedPandaIDE/compiler/compilermanager.cpp b/RedPandaIDE/compiler/compilermanager.cpp index aa7244b7..18240cce 100644 --- a/RedPandaIDE/compiler/compilermanager.cpp +++ b/RedPandaIDE/compiler/compilermanager.cpp @@ -228,7 +228,7 @@ void CompilerManager::run(const QString &filename, const QString &arguments, con #else QString newArguments = QString(" -e \"%1\" %2") .arg(localizePath(filename)).arg(arguments); - execRunner = new ExecutableRunner("/usr/bin/x-terminal-emulator",newArguments,workDir); + execRunner = new ExecutableRunner(pSettings->environment().terminalPath(),newArguments,workDir); #endif execRunner->setStartConsole(true); } else { diff --git a/RedPandaIDE/debugger.cpp b/RedPandaIDE/debugger.cpp index 1ca92e61..6acd076e 100644 --- a/RedPandaIDE/debugger.cpp +++ b/RedPandaIDE/debugger.cpp @@ -2253,8 +2253,13 @@ void DebugTarget::run() cmd= mGDBServer; arguments = QString(" localhost:%1 \"%2\"").arg(mPort).arg(mInferior); #else - cmd= "/usr/bin/x-terminal-emulator"; - arguments = QString(" -e \"%1\" localhost:%2 \"%3\"").arg(mGDBServer).arg(mPort).arg(mInferior); + if (programHasConsole(mInferior)) { + cmd= pSettings->environment().terminalPath(); + arguments = QString(" -e \"%1\" localhost:%2 \"%3\"").arg(mGDBServer).arg(mPort).arg(mInferior); + } else { + cmd= mGDBServer; + arguments = QString(" localhost:%1 \"%2\"").arg(mPort).arg(mInferior); + } #endif QString workingDir = QFileInfo(mInferior).path(); diff --git a/RedPandaIDE/settings.cpp b/RedPandaIDE/settings.cpp index 0971b969..93adbdd7 100644 --- a/RedPandaIDE/settings.cpp +++ b/RedPandaIDE/settings.cpp @@ -2798,6 +2798,10 @@ void Settings::Environment::doLoad() if (!fileExists(mDefaultOpenFolder)) { mDefaultOpenFolder = QDir::currentPath(); } + +#ifdef Q_OS_LINUX + mTerminalPath = stringValue("terminal_path","/usr/bin/x-terminal-emulator"); +#endif } int Settings::Environment::interfaceFontSize() const @@ -2850,6 +2854,16 @@ void Settings::Environment::setIconSet(const QString &newIconSet) mIconSet = newIconSet; } +QString Settings::Environment::terminalPath() const +{ + return mTerminalPath; +} + +void Settings::Environment::setTerminalPath(const QString &terminalPath) +{ + mTerminalPath = terminalPath; +} + void Settings::Environment::doSave() { //Appearence @@ -2861,6 +2875,9 @@ void Settings::Environment::doSave() saveValue("current_folder",mCurrentFolder); saveValue("default_open_folder",mDefaultOpenFolder); +#ifndef Q_OS_WIN + saveValue("terminal_path",mTerminalPath); +#endif } QString Settings::Environment::interfaceFont() const diff --git a/RedPandaIDE/settings.h b/RedPandaIDE/settings.h index 18e7fa2b..be4cd9ef 100644 --- a/RedPandaIDE/settings.h +++ b/RedPandaIDE/settings.h @@ -487,6 +487,9 @@ public: const QString &iconSet() const; void setIconSet(const QString &newIconSet); + QString terminalPath() const; + void setTerminalPath(const QString &terminalPath); + private: //Appearence @@ -498,6 +501,7 @@ public: QString mIconSet; QString mDefaultOpenFolder; + QString mTerminalPath; // _Base interface protected: void doSave() override; diff --git a/RedPandaIDE/settingsdialog/environmentprogramswidget.cpp b/RedPandaIDE/settingsdialog/environmentprogramswidget.cpp new file mode 100644 index 00000000..603b206f --- /dev/null +++ b/RedPandaIDE/settingsdialog/environmentprogramswidget.cpp @@ -0,0 +1,46 @@ +#include "environmentprogramswidget.h" +#include "ui_environmentprogramswidget.h" +#include "../settings.h" +#include "../iconsmanager.h" + +#include + +EnvironmentProgramsWidget::EnvironmentProgramsWidget(const QString& name, const QString& group, QWidget *parent) : + SettingsWidget(name,group,parent), + ui(new Ui::EnvironmentProgramsWidget) +{ + ui->setupUi(this); +} + +EnvironmentProgramsWidget::~EnvironmentProgramsWidget() +{ + delete ui; +} + +void EnvironmentProgramsWidget::doLoad() +{ + ui->txtTerminal->setText(pSettings->environment().terminalPath()); +} + +void EnvironmentProgramsWidget::doSave() +{ + pSettings->environment().setTerminalPath(ui->txtTerminal->text()); + pSettings->environment().save(); +} + +void EnvironmentProgramsWidget::updateIcons(const QSize &) +{ + pIconsManager->setIcon(ui->btnChooseTerminal,IconsManager::ACTION_FILE_OPEN_FOLDER); +} + +void EnvironmentProgramsWidget::on_btnChooseTerminal_clicked() +{ + QString filename = QFileDialog::getOpenFileName( + this, + tr("Choose Terminal Program"), + QString(), + tr("All files (*.*)")); + if (!filename.isEmpty() && fileExists(filename) ) { + ui->txtTerminal->setText(filename); + } +} diff --git a/RedPandaIDE/settingsdialog/environmentprogramswidget.h b/RedPandaIDE/settingsdialog/environmentprogramswidget.h new file mode 100644 index 00000000..22d1e30a --- /dev/null +++ b/RedPandaIDE/settingsdialog/environmentprogramswidget.h @@ -0,0 +1,30 @@ +#ifndef ENVIRONMENTPROGRAMSWIDGET_H +#define ENVIRONMENTPROGRAMSWIDGET_H + +#include "settingswidget.h" + +namespace Ui { +class EnvironmentProgramsWidget; +} + +class EnvironmentProgramsWidget : public SettingsWidget +{ + Q_OBJECT + +public: + explicit EnvironmentProgramsWidget(const QString& name, const QString& group, QWidget *parent = nullptr); + ~EnvironmentProgramsWidget(); + +private: + Ui::EnvironmentProgramsWidget *ui; + + // SettingsWidget interface +protected: + void doLoad(); + void doSave(); + void updateIcons(const QSize &size); +private slots: + void on_btnChooseTerminal_clicked(); +}; + +#endif // ENVIRONMENTPROGRAMSWIDGET_H diff --git a/RedPandaIDE/settingsdialog/environmentprogramswidget.ui b/RedPandaIDE/settingsdialog/environmentprogramswidget.ui new file mode 100644 index 00000000..7f896b69 --- /dev/null +++ b/RedPandaIDE/settingsdialog/environmentprogramswidget.ui @@ -0,0 +1,57 @@ + + + EnvironmentProgramsWidget + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + ... + + + + :/icons/images/newlook24/053-open.png:/icons/images/newlook24/053-open.png + + + + + + + Terminal + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + diff --git a/RedPandaIDE/settingsdialog/settingsdialog.cpp b/RedPandaIDE/settingsdialog/settingsdialog.cpp index 81a79866..7469ea63 100644 --- a/RedPandaIDE/settingsdialog/settingsdialog.cpp +++ b/RedPandaIDE/settingsdialog/settingsdialog.cpp @@ -36,6 +36,9 @@ #include "environmentfileassociationwidget.h" #include "projectversioninfowidget.h" #endif +#ifdef Q_OS_LINUX +#include "environmentprogramswidget.h" +#endif #include #include #include @@ -129,6 +132,12 @@ PSettingsDialog SettingsDialog::optionDialog() widget->init(); dialog->addWidget(widget); +#ifdef Q_OS_LINUX + widget = new EnvironmentProgramsWidget(tr("Terminal"),tr("Environment")); + widget->init(); + dialog->addWidget(widget); +#endif + widget = new EnvironmentPerformanceWidget(tr("Performance"),tr("Environment")); widget->init(); dialog->addWidget(widget); diff --git a/RedPandaIDE/toolsmanager.cpp b/RedPandaIDE/toolsmanager.cpp index 7c577f3c..5d082a62 100644 --- a/RedPandaIDE/toolsmanager.cpp +++ b/RedPandaIDE/toolsmanager.cpp @@ -21,7 +21,11 @@ void ToolsManager::load() mTools.clear(); PToolItem item = std::make_shared(); item->title = tr("Remove Compiled"); +#ifdef Q_OS_WIN item->program = "del"; +#else + item->program = "rm"; +#endif item->workingDirectory = ""; item->parameters = ""; item->pauseAfterExit = false;