From 422bbdd4f887e3f89038f2854588d9fbc59beb7e Mon Sep 17 00:00:00 2001 From: Zira project Date: Tue, 2 Jun 2020 18:45:37 +0500 Subject: [PATCH] terminal start delay --- .../TerminalWidget/libTerminalWidget.so | Bin 32472 -> 32528 bytes include/mainwindow.h | 1 + include/terminalinterface.h | 1 + plugins/TerminalPlugin/terminalplugin.cpp | 6 +++++- plugins/TerminalPlugin/terminalplugin.h | 1 + src/mainwindow.cpp | 9 +++++++++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/bin/plugins/TerminalWidget/libTerminalWidget.so b/bin/plugins/TerminalWidget/libTerminalWidget.so index ffba50e913b058345d652cbfd7b8ebe47903aa8f..cbba20e1550667da4bcb1e427ba1960bec4b0817 100755 GIT binary patch delta 7164 zcmZ`-4RjROb)Fe%^@o0T^~3BUfmWbDFtEG)Nq~g3GFU4Ru>1%lKuF>*fSp7l0t6+N zY=O%f)CjKQ_|-9}JMgah7w_stu; zDERJ~x$nF8zWeUG@6MZ@H*`ns{#xy}+x%`tP`SYr|B0zZ@vl@E=#>+@-pc7OF~C@! zr5f@qs#1S6@p^0h6Hh;N?yDm|o%2M@OIII#czj6~>)*olFny_hU#+3-T2a<|qm!~x z@}1xrxax3`wZo+pPfbyojt#IeDMvOo zgEz8m{5&bCrL$4lj+LgN z2CmVy=pwa>T4Elco|su$c{%+i=1^5tM3<##SL5PXnam9M(dOvP`K>{_1{aeV*Lq|y z8;+xw@S>Px=9?FeGs47yMH1(qiRayfi!-|w-gq5z;&dA?wn@AOyU823J}!UBK`ncR ze;z#-*Q2J>za{AE9rDKO)Ew_qzsr~gP0|5}_YTu&e9nT7pY`iE_rd z)C9WJpwrHAjp`3Xuig6l*vM_1-&e% z(!IdI<`mzQ$yKEMucZBEnUWEi5_4edw=C*GOqc`e5W5LBr9$cGGdVzq9KcN2$FhSW z1AX2c7zVr+y=1fLRZdw8=DNQ6Ei1SWVR4?yWuDTdw~yttd#S~yJ4WUhVskYfl9TDC zQ_v2`B{j9L!q|x9lC5CZNf~di+%79*)h>j&u#)qz%aNCSOHHL9AEKsYJ|;{1EoK6# zDOGpekXor!{(Lu<6REm}B6}%yre|~eQy{mlsd-U+)f zj74$Y)oaRWsduA)>SHgU7Gss^qS6&5?@6wNC}mEB{jUuBNl++C>(rCz5UtFY9X|Ny zhtWe*me5tFUezP(^5{~hur}-5d`EYWk#}pJtE7^^fpW_Il9_I zft;0U9DSHGMP1f+Cnrs%+9`>YHKjytq`E1U6a;!1sF^}QZMlh5l3Sv7(1F}a>d#N4 zU*_JXp`1i|JW3SYtdO@NULY zjC%#%!WbKg(jMv&f(=;JJSgyW#{2>Z4G8=h<21&-0)NUl9pfvZ9wGRM1sQD6E%2`yk7wK=@cWE) z#?1o1&6qdNP@}-FG3J+Z$S?4#j3+QI7x*Q{nT*{6zrZ*P<0At?@GJ`^GPVkQk}+>9 zAw}RP8D}#dxx*QFoUxPfu)qfy=P(`=cn@RVsY3$-?`AxOaj(Ez7`NxLphpNcupp0d zx4^3z=QHjQcq!uo#?1m(FfL@=DDVQtQyKdOp2c_?<8s43+o|m64(II=+}BllCPAT_ zu2gF^1ioXX%b9g$+;o!N?S3%V5GEPIe|16^h~eiUbP(y-F*7CmFkCC>QF;c-8ef;? z6dTPS^#y*{>cDe!l8(6x<94yIYwi~Mx!b9onna(t^QJi9%JIwR?VOZ<`2LodZ^1AZp`(m#B&JDivRXAMT)tVdU3;fm>Sj_xNb>L?3 z5ahnVWnbWrK`)vZ|4?q+u~_UXk9LlRTWuqqE>*}{zbEGrxDxEg;8n*q<$1WLawsB-xs)09r#l)QOx8@@DPN+oRwP~0pgA45ir9h!7m~O zp9j&4MVJ3%m^=g(Ca5h|`m*OO*0ihRX?t<5t3uZ|VzqYuD&S}Sy^(OZ8119~7Y;XqKLb7lJ_KHZIQ!4qLW1n%U1;I-h-+(apZ_k+I-9t0oIu$_*g@f!%@umC}D zJNRwzLU4B!2Eu~0f&0LZgV%y*;Z5`&*0cwB6uh7He-4Mg01txmn`#vN5V-v|{DT*Q z2f=;VT5?gR?}6{MV1FJ$qnkT`pXLsDoCj!EX@Po_PLvinoY%u)es7q>ZGQa^(WTO~ ziQAAL2dliv)=q7GG8Zdb9LKej)J16%TVWwSEQCe1u;730ujA?`&m#WoRkbKH<23Bj zAYBc2T@d{T^aZ(bJqO!jx>M## z9tK*A3V0qo`X{uYd{Vm)O)G5Yz!`r{NB;=7ie&5GXcfu!uBau+&g0SEvR2571T}j4JQXXn zRP*ot@Ipi0Q;cJc@zfm?hclG<%d^{mY~(^g7=rjihRMX|#^ATcVE&Maw7)zC^M_TW zoR?U52R-g{|WFWSCCWxwJVI^mg4ohk1x?n4qGt9kA0L zTD74;9ig)ubexI(V#9t8Vxz9!pt_Cw5!R)RJeXrsgI2zf4sP14`Df8bn`Xi)zP=&; z?x`QO)R&6b&ji$7<4rqV-K>nmY1b+Zc|>o)U9m(U&{wLy1u&oa!- zTI@op8|O8i27SWVQ^X5Wt1O@`4G+QHnT7^O?`*?`x#hox2D=!hoW{!bv4?9p_y}X| z*h4+@fO71y;ttr~@2KZ7$Za?T>|W&*!<&!j(~$E4sDGJ|Cn#nd&}j=SUUV8eaKp88!R4{WZmjVBSG#cb0oYsvhVQ2;snAA36KqZ3N8vYDHs z$*t6~P$z$zJ;B@_v6byTI3Z<}ZHl^8*poV{dI?E!0iqtsxR zJ5XdZw=0up(fI=|+fb>|+vJUO>wqhvxWbTPOPzHvCR%mU{6`V}Hbc6B4m?_RS(8+JdRC)P)*;tk`AO0v^5xtY;1O`JAb>1T8jNaNf7iJ(tF* zp0)1T=i7UqefHUB-*eABU0=$}w`EthYrrQ|37AA=ADB>@Jf+-3Qx0r?-MeCr3F7HU zY4S%>rTmvM4Tqne*LZxI`;E~D_x@|=gq@97KlQTwbv#?>ru?20WFpX}Sq?44yQKCiti?)n4fU8n2~6&}!XgvKr4iji-ZF;YrqbBj|A5 z-T+!p8|@YDu;#4Qbdjc&^oIR<(sGTcq$ZP^WHMcL%q(csOeUL$wAY|LLgNKg{g`pk zkx%Eh+i8OwO@V)MQqQodHX-QJu-%oRA^j@RUWkXCu{IZf{N}X(`2GpM_?&XwhIgM_l_~eu1 z9qyB-6?fC{dU=;>^$!opKPh{^SM@3Mh1C%|k7`DK!-jTVp|igBjKlf~%^0hzRlW zW}C~qN?2?4(l@NicGV$W^y`5~YD2H+$%i%HqxruZW)9p%KXn;yzmB05;-6@@>gj^Z zkYS3tio6T-6vBGSeN-~Vf_^kL?kKd%nAE(F9`Gx?Ff;>Z{i9>WC!^jE8 z<=(9!iIXu!Hqng?!yTUoNA!^XUT@~4#NMZJu1I=uOJVOrqtooI=I~NT@f($OLU_Om z7w!ZaCO$*Wh2@uq$hYNehEa$3@{ZglzOUte=x02B1lg7-Qn1T9feZHX!Y7Cfz3WP0 z6ECv9PEFA~;UGHLg`qqA=Pw>a51SaTJG3qEz<>}|4hN{jYq+fsY*(DrPYqt9Qs`hs z^p;@t?K59_F%ZXZ)BM3Wet=GSmqURKkp4%9 zNXx0V$e>&B@x&1BGU_Zc%xHV|?gEv`^vRGEQK8OySe5%)mP)qCJZ73S&;?XqUn-G3FUZ+Z2ADF;6Jkr0@~O zoOjWBg@4Q#Z;ptD6+XxqTcn5v6yD1i?}do^6>j}LGx!~ddK6<9<5b2@g&$^|##ku4 zg>gFLfiJ-*SjU*(z-Yh1s~Ec&pI3M(W8USWeF`sN%pZj4F~+S0<;>vCGuopRW;5nP zWwcA-sf>A(inb{{kug5Qh=9W581u(CTCZ>pWBznT!wP3G&S4x-IE8U8V?S_ftiZ;M z(ai8Dg)h9oe9nwI75;?rSjIx(KQhi^JaC&M@IGS?<9>y&GWIe)ukc02ybDMB6#gya z@r;k%#`v*<)6B?cMvqc>g>eDnE`?uWT*$ah;pZ6_F>X@$2;*YL^$P!(@dUGP{#+&ZoEgI&`18_q_;e5b^2+_E%Df79?dN&n79)> zvCS81pW8APt>xTf1Uy&@e&kh{kAx7}-#Ds0w79TDEE!L&Q{T-#Hu~$dvVPs$eD{9Y8mtK}uk5%PT(BYdNshId=@+ysD1%&eu2}Lml?~$U9%eVpW~Z`AKj& z)G?pw^{S4~BAwueI{sYM@nK{sH}~z%PuiFGL|^)zc64nYY>hRi4Yd2D5;Q-Oo(FT+ zBj+%9Xy1cQ4D}XX`q%iyk37OdbikqOYJfV0{3qOFzx zti7;%ZXg!(qy6NkvDgaGZqW0fmqDjt6$UZZ9^h=)>H(bz`b*FipiQ9Npb^j$pmykA z2F>PvpkdJN&tkDBK~I1_3mO4EVH2%l5RJFNNWx0=gJy&N1+*BnH~|A;Wtu=kpg0hT zbI7kfz=NRAF#m6G6f^=Ff_xBk4QTc)I0#w{dJZ&%&BTt3JqH>By$sr9$ERTsjXm4} zFLDoEm|G;f=yTM?E?`H&QCMXw{_Tbq~*XCtX*SsWm z-;G#I9flXCIUCcGl*T1!97X@!tQX??+BtgYn=7B8+o*fUT~;cSsJbjSYXqWSfSz3V z>-8*ji|O&Q%nA9B@CTF&OWuaW6UXZZZ#2DHHa5?Z;SssHBNCIkz?u*Bd_042L;~B3 z=!>#>llzAB<_}#Po;g?~-m>j~fF6n;53lAj+8OYry$#fa3_v=EJ_wdMrrCwqK@-ZC=e}nX_c{LCCe}Jn z+QdGa_67LNmrm7qR&x3MD8WAi8Cgf z8uw{hqiLh2+co{c@K2Pi$x6uN`>v1-N+Hi*f=T}t70R0+unB+5@rI-m8;HL3s55fnZ{f~pY0oTLS9c%GJy%!fj=$sK zs~I-YM&A00VEiqHb&)rqcNVvf%zR`C-#o=%sMOJ^dc)leDc>7~7kZTbG2LrFUs1}V zT)R(0Cxeqs=dxB2=akO>P<4YLU39I%sPtizU=IiM7t-=!3Ha(`S1LW}3n zq~mCP&adk+;;*xENUk^JLas;eMpAR%u4!hBtPkuEtrvew=)j*U z&m;cUuMm9ma(Et{T5q@;fq9%Te~nPAuU?0e{v1+X)1C#MuSn0bbk@gu48M+sH9rTA zK0J2(4doc{c`Rq|)(z8AXqS=Ed*z{D4Wl1!TPI(j8{5j{9xB;hW*bPRhqq60WovsD zt)b)FeJ*R4v*;zdvE7#(GX29|H=(7}7179|PTJbyOR;vo!D4#8Wk&Ly9HeMVX|hLW zBwoTDr770-*YBe(J7%OC==XcCVwl=#%6osy}#r4dli92VcMD9_M5|Mjo%TA0k z$Ap5O+ga+ewi=6$q#HYZuBN%BjzvRMvdfopB4~249d6k*%#P#Q*2hYdH*GMvGwJwa Lr8vk%A1nHQ+s7Wh diff --git a/include/mainwindow.h b/include/mainwindow.h index c48a628..df7b0e4 100644 --- a/include/mainwindow.h +++ b/include/mainwindow.h @@ -229,6 +229,7 @@ private slots: void terminalCopy(); void terminalPaste(); void showTerminal(); + void startTerminal(); private: Ui::MainWindow *ui; Settings * settings; diff --git a/include/terminalinterface.h b/include/terminalinterface.h index a90e50f..54fd188 100644 --- a/include/terminalinterface.h +++ b/include/terminalinterface.h @@ -17,6 +17,7 @@ public: virtual void changeDir(QString path) = 0; virtual void copy() = 0; virtual void paste() = 0; + virtual void startShell() = 0; }; #define TerminalInterface_iid "com.github.ziracms.editor.TerminalInterface" diff --git a/plugins/TerminalPlugin/terminalplugin.cpp b/plugins/TerminalPlugin/terminalplugin.cpp index 3f9605d..c93e4cd 100644 --- a/plugins/TerminalPlugin/terminalplugin.cpp +++ b/plugins/TerminalPlugin/terminalplugin.cpp @@ -11,7 +11,6 @@ void TerminalPlugin::initialize(QString path) console->setEnvironment(QStringList() << "TERM=konsole-256color"); console->setColorScheme("Linux"); // "GreenOnBlack", "Linux", "SolarizedLight", "BlackOnWhite", "DarkPastels", "BlackOnRandomLight", "WhiteOnBlack", "BlackOnLightYellow", "Solarized", "BreezeModified" console->setWorkingDirectory(path); - console->startShellProgram(); } QString TerminalPlugin::getDirName() @@ -48,3 +47,8 @@ void TerminalPlugin::changeDir(QString path) { console->changeDir(path); } + +void TerminalPlugin::startShell() +{ + console->startShellProgram(); +} diff --git a/plugins/TerminalPlugin/terminalplugin.h b/plugins/TerminalPlugin/terminalplugin.h index cd20532..4253c78 100644 --- a/plugins/TerminalPlugin/terminalplugin.h +++ b/plugins/TerminalPlugin/terminalplugin.h @@ -22,6 +22,7 @@ public: void changeDir(QString path) override; void copy() override; void paste() override; + void startShell() override; private: QTermWidget * console; }; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9505731..c5b67dc 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -43,6 +43,7 @@ const int SIDEBAR_TAB_NAVIGATOR_INDEX = 1; const int SIDEBAR_TAB_GIT_BROWSER_INDEX = 2; int const MainWindow::EXIT_CODE_RESTART = -123456789; +int const TERMINAL_START_DELAY = 250; // should not be less then PROJECT_LOAD_DELAY MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -442,6 +443,8 @@ MainWindow::MainWindow(QWidget *parent) : QString showTerminalStr = QString::fromStdString(settings->get("shortcut_terminal")); QShortcut * showTerminal = new QShortcut(QKeySequence(showTerminalStr), this); connect(showTerminal, SIGNAL(activated()), this, SLOT(showTerminal())); + + QTimer::singleShot(TERMINAL_START_DELAY, this, SLOT(startTerminal())); } else { terminalTabIndex = -1; } @@ -2468,3 +2471,9 @@ void MainWindow::terminalPaste() if (terminal == nullptr) return; terminal->paste(); } + +void MainWindow::startTerminal() +{ + if (terminal == nullptr) return; + terminal->startShell(); +}