From 2e64b9d2f7997496462dd77b97573758630ff3fe Mon Sep 17 00:00:00 2001
From: "evgenii.tagiltsev" <tagiltsev.evgenii@gmail.com>
Date: Fri, 11 Oct 2019 14:19:01 +0200
Subject: [PATCH] [*] changed parsing regexp

---
 .../DapChainHistoryHandler.cpp                 | 18 ++++++++++++------
 .../DapChainHistoryHandler.h                   |  1 +
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/CellFrameDashboardService/DapChainHistoryHandler.cpp b/CellFrameDashboardService/DapChainHistoryHandler.cpp
index 136e348..71c10a7 100644
--- a/CellFrameDashboardService/DapChainHistoryHandler.cpp
+++ b/CellFrameDashboardService/DapChainHistoryHandler.cpp
@@ -29,14 +29,20 @@ void DapChainHistoryHandler::onRequestNewHistory(const QMap<QString, QVariant>&
 
         if(!result.isEmpty())
         {
-            QRegExp rx("((\\w{3}\\s+){2}\\d{1,2}\\s+(\\d{1,2}:*){3}\\s+\\d{4})\\s+(\\w+)\\s+(\\d+)\\s(\\w+)\\s+\\w+\\s+([\\w\\d]+)");
-
-            int pos = 0;
-            while ((pos = rx.indexIn(result, pos)) != -1)
+            QRegularExpression regular("((\\w{3}\\s+){2}\\d{1,2}\\s+(\\d{1,2}:*){3}\\s+\\d{4})\\s+(\\w+)\\s+(\\d+)\\s(\\w+)\\s+\\w+\\s+([\\w\\d]+)", QRegularExpression::MultilineOption);
+            QRegularExpressionMatchIterator matchItr = regular.globalMatch(result);
+            while (matchItr.hasNext())
             {
-                QStringList dataItem = QStringList() << rx.cap(1) << QString::number(DapTransactionStatusConvertor::getStatusByShort(rx.cap(4))) << rx.cap(5) << rx.cap(6) << rx.cap(7) << wallets.at(i).toString();
+                QRegularExpressionMatch match = matchItr.next();
+                QStringList dataItem = QStringList()
+                                       << match.captured(1)
+                                       << QString::number(DapTransactionStatusConvertor::getStatusByShort(match.captured(4)))
+                                       << match.captured(5)
+                                       << match.captured(6)
+                                       << match.captured(7)
+                                       << wallets.at(i).toString();
                 data << dataItem;
-                pos += rx.matchedLength();
+
             }
         }
     }
diff --git a/CellFrameDashboardService/DapChainHistoryHandler.h b/CellFrameDashboardService/DapChainHistoryHandler.h
index 6b56f6e..61b45df 100644
--- a/CellFrameDashboardService/DapChainHistoryHandler.h
+++ b/CellFrameDashboardService/DapChainHistoryHandler.h
@@ -8,6 +8,7 @@
 #include <QProcess>
 #include <QDebug>
 #include <QList>
+#include <QRegularExpression>
 
 #include "DapHistoryType.h"
 
-- 
GitLab