From 28538a0783604dc58fa1f34c9eeca085d21f0d05 Mon Sep 17 00:00:00 2001 From: "littletux89@gmail.com" <littletux89@gmail.com> Date: Thu, 30 May 2019 00:07:06 +0300 Subject: [PATCH] [*] Changes in the algorithm for obtaining node logs. --- KelvinDashboardGUI/DapServiceController.cpp | 51 ++++++++++-------- .../DapUiQmlWidgetChainNodeLogs.ui.qml | 36 +++++++------ .../Resources/Icons/dialog-error.png | Bin 0 -> 1936 bytes .../Resources/Icons/dialog-information.png | Bin 0 -> 1033 bytes .../Resources/Icons/dialog-question.png | Bin 0 -> 1336 bytes .../Resources/Icons/dialog-warning.png | Bin 0 -> 1495 bytes KelvinDashboardGUI/Resources/Icons/dialog.png | Bin 408 -> 0 bytes KelvinDashboardGUI/qml.qrc | 5 +- .../DapChainDashboardService.cpp | 4 +- .../DapChainDashboardService.h | 4 +- KelvinDashboardService/DapChainLogHandler.cpp | 41 ++++++++++++++ .../{DapLogReader.h => DapChainLogHandler.h} | 4 +- .../DapChainWalletHandler.cpp | 4 +- KelvinDashboardService/DapLogReader.cpp | 38 ------------- .../KelvinDashboardService.pro | 8 +-- KelvinDashboardService/main.cpp | 2 +- libKelvinDashboardCommon/DapLogModel.cpp | 25 ++++++++- 17 files changed, 132 insertions(+), 90 deletions(-) create mode 100644 KelvinDashboardGUI/Resources/Icons/dialog-error.png create mode 100644 KelvinDashboardGUI/Resources/Icons/dialog-information.png create mode 100644 KelvinDashboardGUI/Resources/Icons/dialog-question.png create mode 100644 KelvinDashboardGUI/Resources/Icons/dialog-warning.png delete mode 100644 KelvinDashboardGUI/Resources/Icons/dialog.png create mode 100644 KelvinDashboardService/DapChainLogHandler.cpp rename KelvinDashboardService/{DapLogReader.h => DapChainLogHandler.h} (78%) delete mode 100644 KelvinDashboardService/DapLogReader.cpp diff --git a/KelvinDashboardGUI/DapServiceController.cpp b/KelvinDashboardGUI/DapServiceController.cpp index 8543ef039..e1c01a2ed 100644 --- a/KelvinDashboardGUI/DapServiceController.cpp +++ b/KelvinDashboardGUI/DapServiceController.cpp @@ -76,28 +76,37 @@ void DapServiceController::getWallets() const /// @param aNodeLogs List of node logs. void DapServiceController::processGetNodeLogs(const QStringList &aNodeLogs) { - for(QString s : aNodeLogs) + int counter {0}; + QStringList list; + for(int x{0}; x < aNodeLogs.size(); ++x) { - qDebug() << s; - QStringList tempList = s.split(" "); - DapLogMessage message; - if(tempList.at(1) == "[INF]") - message.setType(Type::Info); - else if(tempList.at(1) == "[WRN]") - message.setType(Type::Warning); - else if(tempList.at(1) == "[DBG]") - message.setType(Type::Debug); - else if(tempList.at(1) == "[ERR]") - message.setType(Type::Error); - QString str = tempList.at(0); - message.setTimeStamp(str.remove("[").remove("]")); - QStringList tempList2 = tempList.at(2).split("\t"); - QString str2 = tempList2.at(0); - message.setFile(str2.remove("[").remove("]")); - QString str3 = s.split("\t").at(1); - int pos = str3.indexOf('\n'); - message.setMessage(str3.remove(pos, str3.size()-pos)); - DapLogModel::getInstance().append(message); + qDebug() << aNodeLogs[x]; + if(counter == 4) + { + DapLogMessage message; + message.setTimeStamp(list.at(0)); + if(list.at(1) == "INF") + message.setType(Type::Info); + else if(list.at(1) == "WRN") + message.setType(Type::Warning); + else if(list.at(1) == "DBG") + message.setType(Type::Debug); + else if(list.at(1) == "ERR") + message.setType(Type::Error); + else if(list.at(1) == " * ") + message.setType(Type::Error); + message.setFile(list.at(2)); + message.setMessage(list.at(3)); + DapLogModel::getInstance().append(message); + list.clear(); + counter = 0; + --x; + } + else + { + list.append(aNodeLogs[x]); + ++counter; + } } } diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.ui.qml b/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.ui.qml index ae9cd76bc..c1719d28d 100644 --- a/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.ui.qml +++ b/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.ui.qml @@ -16,15 +16,15 @@ Page { name: "Node 1" } - ListElement - { - name: "Node 2" - } +// ListElement +// { +// name: "Node 2" +// } - ListElement - { - name: "Node 3" - } +// ListElement +// { +// name: "Node 3" +// } } TabView @@ -55,18 +55,22 @@ Page { TableViewColumn { id: columnType -// role: "type" + role: "type" title: "Type" delegate: Item{ - Image { - id: names - anchors.centerIn: parent - source: "qrc:/Resources/Icons/dialog.png" - width: 14 - height: 14 - } + Text { + anchors.centerIn: parent + renderType: Text.NativeRendering + text: styleData.value + } +// Image { +// anchors.centerIn: parent +// source: styleData.value +// width: 14 +// height: 14 +// } } } TableViewColumn { diff --git a/KelvinDashboardGUI/Resources/Icons/dialog-error.png b/KelvinDashboardGUI/Resources/Icons/dialog-error.png new file mode 100644 index 0000000000000000000000000000000000000000..eebba2729b5dce38ccf44e7ff6c8e2fedfbf1ae0 GIT binary patch literal 1936 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 W=T@;q2>m($0000<MNUMnLSTYT)4sj{ literal 0 HcmV?d00001 diff --git a/KelvinDashboardGUI/Resources/Icons/dialog-information.png b/KelvinDashboardGUI/Resources/Icons/dialog-information.png new file mode 100644 index 0000000000000000000000000000000000000000..42e42c6144ff2ee5ee48c9a102a5e27ed85e67c6 GIT binary patch literal 1033 zcmV+k1or!hP)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru;{_cQC<pF=^BVvF1C~id zK~#9!?V3$)(@+$J&rM>-NlFV$K!QP*(G4(R#JFRmE`c2&Bt(~h!~m9nkWeLdQYKYG zTY}oOcH-FgGI);d*iPGk9oxyfQl!*z?R@8*`}3>-I&|pJp<{c4mVMCw?#d>C{(NC( zvbL7~hir!fv;fNmknI*gSf_v%KnqY%eBEEX?aSkHp!aBd1mNVg?J*z(^d4470G9O$ zAb{9okO1iJZN3A1PIg=ZKoI8|0D(HY6=;J63h?Uq0<bRuA_x?`8p;Xe+<*mZ6QP_g z(Af)C{7U8i99{?@0;UcG1hO8KSpy2bb9-08+gA!caDsr;amR)*fvla)9fhgA0}%mD zu2mtVx${`1#ncYO>TOmEeAzc*e?7**w;KpiOo1R3K#=J~xx?&k?i>)>9uk6wF9}2t z0?f{4)BryzF2~>{T77U-AZ0pLA{f>NPJ(hf{QS7gT%}WvB9t-*WTrs;l>x8b1DLrG zA&}9oZx_g%vV+>EoF@@5B^*fr`L6n?W!5wWQWl^n1%S*#7{Y@fOn}VPu+%i_R|L~F zAOk*b{c!OE_<4HFJe4lZR^5wW3@R({0T5BJX-X7E_SKxwXx3;qm{|iT-3hYbQ|Azb zS&2Z6Iy)el_xFQW#{e*^_e43h!8JY*2^&t>3Dg@R3eJ@@SnOOS5&+`Z7+vWuklGe4 zt|qD7VJJ*$#iMhHvX9p@1?KQV(d`R_FHr!=aKQTEt1}010zRuH764zG1K#`?1HKy# zIZ5~wTru#a?FFdSR^Qok1NeY}BpQkYi@#n7s{O*Af&Tw{ma-cJ05scbmiK31p%{Ed zuaD0IIjwxDDG)lLVJe~h*`4qx0KT*$xF7<V>Uki0Ylpu*1w3AHHStfgxQGDK1RxOh zV|gD;cu3TOoUOT3fbq%6N_T4Q^!)CVrz`DCg&8-er^2p_vV!uu(DS3~0}=VW3cNiW zct+bgJb&B&Se5{-+^*!Ww(|C`foE9d!sjc%J=0T|VV_k4K34(QzdNCX8P3_jGdk6P zU#kOz8P0k6IbUE6@RvS_5N0^PhYJ2(b>P?HfDqoQ9(>^f2s50~&@+r`!sp)xDFOc{ zfPY_2_`)0z!kg8G&sPAR|G0zUTn@cP4d4Nwk?YmihjTgb8cpkPR0H^29pF#g?$o*P z8qLn(=%^m>xe73yTs=d}dOiBk{{$U6bm-8bqZaWOGYtp1pLZ`U00000NkvXXu0mjf DSH98< literal 0 HcmV?d00001 diff --git a/KelvinDashboardGUI/Resources/Icons/dialog-question.png b/KelvinDashboardGUI/Resources/Icons/dialog-question.png new file mode 100644 index 0000000000000000000000000000000000000000..441fd9363c24a4cd4bebd27fcb8e932fabce9869 GIT binary patch literal 1336 zcmV-81;_e{P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru;{_cQCL3e}g4zH81jR{2 zK~#9!?U`S16lD~~e`jZQce<b{trZp;pp}S!AW@?vLSjPVh2b0MwMzUN`U$)=CMI4O z?~GT*7!1*1Bq2xwC?pWEMJUh$TEljCcHZ}RG1KYHwq015?e28<T<zq2XLp|GJm)-T z-i2WdV;I92#^8pmxA6J9-|1!o`oY)7*2L<rdxs8&0^9+|-$nrgLcze7Kw;2bVErDT z1K$I(k1b;!dtTel_@1Zmo-PAWUu>{2v&ih(J3P2w-=qWxOds08z9YL3N!xK{)MNLk z$K=5YuKse9YiH&*wEwheg4sRA)S)WRy}1jupl#6YJG>J=sB`1&z0ETRR7O3f-l$^D zqkZH4!+V*#au>5Go5Kbt4^DuBMg;ivCg*;<%<aDx5P|Je6TEVCKP9gi-?RI`v;6V% zEF;cH{(Hc-om*4cKX>9X*Dv2hL{Nn5zt4e%*WY<L-ZMVAjUc#6T@}x*<ePv}#l;#M zU*Dcth{2132+YsiOYQM0B|vFf9|?rAJJN$5kWmx-;j_~$1+~Zx6d?j1)tRbbjEzeK zK&_%EqJnRIG=Q?><x>I65?(S765zv6AczP%rk}yu6#^doTMsFcaA#ne2tvsz=kr~_ zb1DczEvT&mzx#zMFCE#J>JtmI_ri4*qOAm`2}<T9Y}h1Nc1BR35!3*|aUBl6^*q(- zv`bi{%v`(`Dj)*CTrfrhd@Ga+rF@<Tl${Y!XlR31kG{zG<hJyDpm6cj6>9%AQs5P$ z2~sdNz*i_brTmmYD+$%<3C60Usm5ml!==;LxP9&J3V01OFCy`00E?j+_?eK<lLL|M zd&g3?x3sv#`BPV^{j<~}dkw)SUn`;utCqm}xP@Z=4n(}I<&^Y)J8=nrDQJ^<SplyC zDu^i7T8tW;f|HLP5TC+`q~za7f^VsLO@LQcz%SdWQ3DDEak4If?!~X)oTm}gW00-g zULyZbWj+BOB(>M70+xal@=*dsDT4#P@jI418i8LXEV@=zRCLvOL*JeW77OKYsCk^s z$M+<a5S}$?hneg8yFl9?mm(CPX?&ulA3eT?fTBrI#G)Gcf@sPTHL+J9I|8~H2i~4e zU7z{>LPwcjYj0W^ecl7K<#gzgYhKp?-?E+y7g&8fw(*(o=^W5XfF=NGi_dGK;kC{L z$@Ry5-ky}eg`ciqY!J`25|x3rlYL_Elghs5?*hd_5di`XVl&gI+s9%ST`@U{oB>v? zKk0M!?9WkGiiiqEgNJ8cNr2BL^F8eW@f22YQ45A(?V3->KC7DV3l~U+Q*c2AYfZY_ zCu=@~Zr?Eh)|!sKC>&!upR6@3=P=7Qoa0n9mVGMoDw!*DT>@rne|Gd+Tb!+C!mD<q zD65uR^}p4(jh-nmGd+EJ?A!NH{pyjyW4Tkm5x9<b{F4(Oe$guedh#~dFW`GZKtF-c z)&<PN3(8`-)94@YncJYYUF$#a853Z_*VuKz-wa&oFYp`E15)5m_80iB6VUJAGc5rV zO>{}{^L~GW@0tSg0=_FYs95Hk`2gPq8#K%}=K@!Xxd5Lj0f96s_nQk5_>Xb{K2rh~ uoA-AWDZl^m$>U!#jA0C87{eGwF5-VXl~@#`8?fpC0000<MNUMnLSTYm7Id-z literal 0 HcmV?d00001 diff --git a/KelvinDashboardGUI/Resources/Icons/dialog-warning.png b/KelvinDashboardGUI/Resources/Icons/dialog-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..4149e3d1e04397814fbf114062339b9110f535f9 GIT binary patch literal 1495 zcmV;|1t|K7P)<h;3K|Lk000e1NJLTq002M$002M;1^@s6s%dfF00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY4c7nw4c7reD4Tcy000McNliru;{_cQCI$xu?gIb-1!PG? zK~#9!?V8VTR8<tmKj+QwX-g@E0xcF07ZL&*L_qPkalwMHXCWICSg>?!;*y>I1Dd$d zy>VlVU`Qj13PNN_69ihO%=G89^Xt8LkBc|I+G(dWeKUQvbCR3P+<WKU_x+x8zW3Ka z$2!)rj&*G7nyl2IBNz041@!Ijmc<%g@fWIFA_7(>fDQp$oPe#K0@{gyjs~=Ra7_*} zUvTL$6B|Z=)trD9m;U2Kcb{Zt!EVEN0ZReh_7bQ;RB@7rn4KS`w=1+oB0wzYe+|j} zK`3*J?FUYgEx_!8vo#_>cN|3uX~?Ar0i|4;p24HckKF;)wnjqxBfyG6-%&{aS*;6C z{Z9ALaYErZxuU~d&Td--SZz<bT_=$2DA+T#m$0*#*-^TOUk4F#MJ1beH#h=R{V$Oo zwD)Dm+y+(j@D=p%6;LHI^%seOBShl8poU!DVLs>hH+CRWVBk$;>Ml47fFdG@h}Y)k zkjcAr51&B*5y+QZ77EVBq=2gWTjB$d+=piFRO`Iqt?GA~yhF721tQz_R$n?-G%OU{ zb&tRC5wQ0iNZ$lgCvYNOseD%(p8ZD8f%m;?6v0p^Ipj-jyG77H@X~V#33sE@_m{Lu zxzzQY{fAIAL9Fi(f~j&;EV=6>VWZXoA~5(aj9mw_MA^k^97`2R-Jt8>N7yr?9tmZd zY};Eo#-rBeSqI3DS5Z5UW=EH4Z;Sv?$UZ>aEQvj@Afi=K1jTj@McZvd3ivYhgkkqv zF#hxM?UndmrcK7Lkr;jtOCkv6I=o`rO38MEKMl(6H_-XVkQ-m2k5w+qwB?_o^N)z{ zJ5!!Az2a%7!Ep_?V*)IK;Uo;4f~VJ;Y>Jl50!s-@T_ZYp8Y|je?IvQXY2g}=h+vA~ z-Vf2qyHK25d5GJeHGf878m8_MAO3*CgYRp4pi=#8jN&4MED4YZ#`=-IBaphW{zyvw zLU`9PLR~xS1hJM96%vdZzgL3m(7t_V(bNcP=bHAD6IYQFSDQc2&O>U1=>D^f7g;LR zKsClIYt%shBS5-`k**<h;@9Up7!hmLemXHisC$U;wgZbiUoVa#LD7I0&Y@3!EH8PR zo4NJr^F7mbVC*L%FP^7#?@L50;A<<1iY~16EZ5fvkp5#3j-iu(`@WaZ%xy$Mgm)fW z;(4mN;BN%1l}ZUA!{;Er3pxEo%MLI?2hU@s?<4AX+v##7Z2ZNDI%IEtPBvfLz<Az~ z@|K{Y;8NFC*)B-kJg>DrRGuSsee3E}Ys-irT#R(Zy#tQ<f~kAyifC1U>oVYV33y!s zUK_!$)AKD8!DLiGy>q>q=gTi#Cs<WLD3~Svv=%+0b>OMht=ID{y&6l#Ja6ZU?jmp1 zQbHH4f;YnREx#K~L_x$NUo@+Lr<NLR2H%tb*R|I+31A`C;#oBo1~pK0)LXUH0Z=WU z1gN6wHV7m%ilE=%n-Vbf`2LzgAlkLv-L`Xo!}H=%&($SI8^Ec$WYeQ+O2x%(i$s!^ zfrlpl5?iY|Kb*Xv@a;<NCC4M79{hafp%dv&T;B8X_*WZsJsxh?K+&+rwe4tNz_)+^ zU4;bC^V6wdfcKdI7qods8Fk4|K6GNq#N~kifNyIA7<HL@_OD|_6PNlgj(<%+EbM0h zl=rF2gHJyS9C-gzV3|q91OGUX;9H&oHSn=Og7=?*x($?3m$}T7GWdx=g7=jG7q`0i zH|mnjj0GNiOCrDnKkitu;DcY~OmOXH)bTtYi);$;zD9s!=aaeVv}47hm-;WJHwAcK x2`J3X425ISPx>yVzoBCt>sZG+*0D`t{{agfoKzL$w7>uW002ovPDHLkV1hIx%gq1) literal 0 HcmV?d00001 diff --git a/KelvinDashboardGUI/Resources/Icons/dialog.png b/KelvinDashboardGUI/Resources/Icons/dialog.png deleted file mode 100644 index 176bc26d4962885d56ed46d4c7fb9c62f195529e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 408 zcmeAS@N?(olHy`uVBq!ia0vp^d?3uh1|;P@bT0xawj^(N7l!{JxM1({$v_d#0*}aI zppNSx%;=;sy8<Z4UgGKN%Kn&DM9kcDYJ>Sh1_nk|PZ!4!jq_V4?e}7K6gXC2yq$9r zv#U#YiCs&tnVDIbn4P=SN7fvX8m9Pz>H;+^+#7vTHC_G)Pcq)Q_qJrWwche{2bTH` zXW!L)uC?a*BglAT-&ud(8$YKW*imisBF2j0>n?5?Q*N_ehmL6PdlQ>{fw6<(#M;tt z!soBO;jPKo&&<cb-&Xt5X3mj4=b55<Cf<|k2&tdk8t~c3dGg+`GhVJvp2K!QWEW>g zLg=Scfzi$<HZ?qBl1kp$SaqZ{o1H!3UX;^(M-8Pl0Ub$4lzhZXmnJW~BB`~mo%No! zfbx!_zJm@@eg9Ic`dzp#cviJ5Xm3uiTT+!Q#1t42G1Kk}_k|_(hLvVluNwHXFW&s` y>L%BM`}!u_t>^677Jq)aNdBfxrPVY0pDY(e`aItVUKIj{A%mx@pUXO@geCwFIi6+! diff --git a/KelvinDashboardGUI/qml.qrc b/KelvinDashboardGUI/qml.qrc index 4d465d5ce..eedcc5cd7 100755 --- a/KelvinDashboardGUI/qml.qrc +++ b/KelvinDashboardGUI/qml.qrc @@ -24,10 +24,13 @@ <file>Resources/Icons/about.png</file> <file>Resources/Icons/home.png</file> <file>Resources/Icons/settings.png</file> - <file>Resources/Icons/dialog.png</file> <file>Resources/Icons/exit.png</file> <file>DapUiQmlScreenDialogAddWallet.qml</file> <file>DapUiQmlWidgetChainWallet.qml</file> <file>DapUiQmlWidgetChainWalletForm.ui.qml</file> + <file>Resources/Icons/dialog-error.png</file> + <file>Resources/Icons/dialog-information.png</file> + <file>Resources/Icons/dialog-question.png</file> + <file>Resources/Icons/dialog-warning.png</file> </qresource> </RCC> diff --git a/KelvinDashboardService/DapChainDashboardService.cpp b/KelvinDashboardService/DapChainDashboardService.cpp index b5530fcc0..f1d558c5b 100755 --- a/KelvinDashboardService/DapChainDashboardService.cpp +++ b/KelvinDashboardService/DapChainDashboardService.cpp @@ -3,7 +3,7 @@ DapChainDashboardService::DapChainDashboardService() : DapRpcService(nullptr) { // Log reader - m_pDapLogReader = new DapLogReader(this); + m_pDapChainLogHandler = new DapChainLogHandler(this); m_pDapChainWalletHandler = new DapChainWalletHandler(this); @@ -38,7 +38,7 @@ bool DapChainDashboardService::start() QStringList DapChainDashboardService::getNodeLogs(int aiTimeStamp, int aiRowCount) { qInfo() << QString("getNodeLogs(%1, %2)").arg(aiTimeStamp).arg(aiRowCount); - return m_pDapLogReader->request(aiTimeStamp, aiRowCount); + return m_pDapChainLogHandler->request(aiTimeStamp, aiRowCount); } QStringList DapChainDashboardService::addWallet(const QString &asWalletName) diff --git a/KelvinDashboardService/DapChainDashboardService.h b/KelvinDashboardService/DapChainDashboardService.h index 6c0f7399e..1e4f2663e 100755 --- a/KelvinDashboardService/DapChainDashboardService.h +++ b/KelvinDashboardService/DapChainDashboardService.h @@ -23,7 +23,7 @@ #include "DapRpcTCPServer.h" #include "DapRpcService.h" -#include "DapLogReader.h" +#include "DapChainLogHandler.h" #include "DapChainWalletHandler.h" #include <QLocalServer> @@ -39,7 +39,7 @@ class DapChainDashboardService : public DapRpcService /// Socket of client connection with the service. DapUiSocketServer * m_pSocketService {nullptr}; /// Log reader. - DapLogReader * m_pDapLogReader {nullptr}; + DapChainLogHandler * m_pDapChainLogHandler {nullptr}; DapChainWalletHandler * m_pDapChainWalletHandler {nullptr}; public: diff --git a/KelvinDashboardService/DapChainLogHandler.cpp b/KelvinDashboardService/DapChainLogHandler.cpp new file mode 100644 index 000000000..de6211b91 --- /dev/null +++ b/KelvinDashboardService/DapChainLogHandler.cpp @@ -0,0 +1,41 @@ +#include "DapChainLogHandler.h" + +DapChainLogHandler::DapChainLogHandler(QObject *parent) : QObject(parent) +{ + +} + +QStringList DapChainLogHandler::parse(const QByteArray &aLogMessages) +{ + qDebug() << aLogMessages; + QRegExp rx("(\\t|\\[)([\\w\\s]{1,1}[\\w\\s\\W]+)(\\n|\\r|\\])"); + rx.setMinimal(true); + + int pos{0}; + QStringList list; + while((pos = rx.indexIn(aLogMessages, pos)) != -1) + { + list.append(rx.cap(2)); + pos += rx.matchedLength(); + } + qDebug() << list; + return list; +} + +QStringList DapChainLogHandler::request(int aiTimeStamp, int aiRowCount) +{ + QByteArray result; + QProcess process; + process.start(QString("%1 print_log ts_after %2 limit %3").arg("/home/andrey/Project/build-kelvin-node/kelvin-node-cli").arg(aiTimeStamp).arg(aiRowCount)); + process.waitForFinished(-1); + result = process.readAll(); + + if(result.isEmpty()) + qDebug() << "FALSE"; + else + { + qDebug() << "TRUE"; + } + + return parse(result); +} diff --git a/KelvinDashboardService/DapLogReader.h b/KelvinDashboardService/DapChainLogHandler.h similarity index 78% rename from KelvinDashboardService/DapLogReader.h rename to KelvinDashboardService/DapChainLogHandler.h index a164d3598..ed50921ab 100644 --- a/KelvinDashboardService/DapLogReader.h +++ b/KelvinDashboardService/DapChainLogHandler.h @@ -9,7 +9,7 @@ #include "DapLogMessage.h" -class DapLogReader : public QObject +class DapChainLogHandler : public QObject { Q_OBJECT @@ -17,7 +17,7 @@ protected: virtual QStringList parse(const QByteArray& aLogMessages); public: - explicit DapLogReader(QObject *parent = nullptr); + explicit DapChainLogHandler(QObject *parent = nullptr); public slots: QStringList request(int aiTimeStamp, int aiRowCount); diff --git a/KelvinDashboardService/DapChainWalletHandler.cpp b/KelvinDashboardService/DapChainWalletHandler.cpp index 50f3669bd..b02cb255f 100644 --- a/KelvinDashboardService/DapChainWalletHandler.cpp +++ b/KelvinDashboardService/DapChainWalletHandler.cpp @@ -16,7 +16,7 @@ QStringList DapChainWalletHandler::createWallet(const QString &asNameWallet) { QByteArray result; QProcess process; - process.start(QString("%1 wallet new -w %2").arg("/home/andrey/Demlabs/build-kelvin-node/kelvin-node-cli").arg(asNameWallet)); + process.start(QString("%1 wallet new -w %2").arg("/home/andrey/Project/build-kelvin-node/kelvin-node-cli").arg(asNameWallet)); process.waitForFinished(-1); result = process.readAll(); QStringList list; @@ -29,7 +29,7 @@ QMap<QString, QVariant> DapChainWalletHandler::getWallets() { QMap<QString, QVariant> map; QProcess process; - process.start(QString("%1 wallet list").arg("/home/andrey/Demlabs/build-kelvin-node/kelvin-node-cli")); + process.start(QString("%1 wallet list").arg("/home/andrey/Project/build-kelvin-node/kelvin-node-cli")); process.waitForFinished(-1); QString str = QString::fromLatin1(process.readAll()).remove(" "); QRegExp rx( ":\\b([a-zA-Z0-9]+)\\n" ); diff --git a/KelvinDashboardService/DapLogReader.cpp b/KelvinDashboardService/DapLogReader.cpp deleted file mode 100644 index 9907b1c83..000000000 --- a/KelvinDashboardService/DapLogReader.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "DapLogReader.h" - - - -DapLogReader::DapLogReader(QObject *parent) : QObject(parent) -{ - -} - -QStringList DapLogReader::parse(const QByteArray &aLogMessages) -{ - QStringList list = QString::fromLatin1(aLogMessages).split(";"); - - auto resultEnd = std::remove_if(list.begin(), list.end(), - [] (const QString& aLogMessage) - { - return !aLogMessage.contains('['); - }); - list.erase(resultEnd, list.end()); - return list; -} - -QStringList DapLogReader::request(int aiTimeStamp, int aiRowCount) -{ - QByteArray result; - QProcess process; - process.start(QString("%1 print_log ts_after %2 limit %3").arg("/home/andrey/Demlabs/build-kelvin-node/kelvin-node-cli").arg(aiTimeStamp).arg(aiRowCount)); - process.waitForFinished(-1); - result = process.readAll(); - - if(result.isEmpty()) - qDebug() << "FALSE"; - else - { - qDebug() << "TRUE"; - } - return parse(result); -} diff --git a/KelvinDashboardService/KelvinDashboardService.pro b/KelvinDashboardService/KelvinDashboardService.pro index 83a63af6c..52458e45e 100755 --- a/KelvinDashboardService/KelvinDashboardService.pro +++ b/KelvinDashboardService/KelvinDashboardService.pro @@ -41,15 +41,15 @@ SOURCES += \ DapChainDashboardService.cpp \ DapChainNode.cpp \ DapChainNodeCache.cpp \ - DapLogReader.cpp \ - DapChainWalletHandler.cpp + DapChainWalletHandler.cpp \ + DapChainLogHandler.cpp HEADERS += \ DapChainDashboardService.h \ DapChainNode.h \ DapChainNodeCache.h \ - DapLogReader.h \ - DapChainWalletHandler.h + DapChainWalletHandler.h \ + DapChainLogHandler.h include (../libdap/libdap.pri) include (../libdap-crypto/libdap-crypto.pri) diff --git a/KelvinDashboardService/main.cpp b/KelvinDashboardService/main.cpp index 7919e48f2..9c4130e8a 100755 --- a/KelvinDashboardService/main.cpp +++ b/KelvinDashboardService/main.cpp @@ -5,7 +5,7 @@ #include "DapHalper.h" #include "DapChainDashboardService.h" #include "DapLogger.h" -#include "DapLogReader.h" +#include "DapChainLogHandler.h" int main(int argc, char *argv[]) { diff --git a/libKelvinDashboardCommon/DapLogModel.cpp b/libKelvinDashboardCommon/DapLogModel.cpp index ad8d7d4f3..653c0a070 100644 --- a/libKelvinDashboardCommon/DapLogModel.cpp +++ b/libKelvinDashboardCommon/DapLogModel.cpp @@ -20,7 +20,30 @@ QVariant DapLogModel::data(const QModelIndex &index, int role) const { if (index.row() < rowCount()) switch (role) { - case TypeRole: return m_dapLogMessage.at(index.row())->getType(); + case TypeRole: + switch (m_dapLogMessage.at(index.row())->getType()) { + case Type::Info: + return "INF"; + case Type::Warning: + return "WRG"; + case Type::Error: + return "ERR"; + case Type::Debug: + return "DBG"; + default: + break; +// case Type::Info: +// return "qrc:/Resources/Icons/dialog-information.png"; +// case Type::Warning: +// return "qrc:/Resources/Icons/dialog-warning.png"; +// case Type::Error: +// return "qrc:/Resources/Icons/dialog-error.png"; +// case Type::Debug: +// return "qrc:/Resources/Icons/dialog-question.png"; +// default: +// break; + } + case TimeStampRole: return m_dapLogMessage.at(index.row())->getTimeStamp(); case FileRole: return m_dapLogMessage.at(index.row())->getFile(); case MessageRole: return m_dapLogMessage.at(index.row())->getMessage(); -- GitLab