Skip to content

Commit a0bab85

Browse files
authored
ported GUI code from QRegExp to QRegularExpression (danmar#3785)
1 parent 0d2af9a commit a0bab85

21 files changed

Lines changed: 264 additions & 253 deletions

gui/checkthread.cpp

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#include <QDir>
2828
#include <QFile>
2929
#include <QProcess>
30-
#include <QRegExp>
30+
#include <QRegularExpression>
3131
#include <QSettings>
3232

3333
static bool executeCommand(std::string exe, std::vector<std::string> args, std::string redirect, std::string *output)
@@ -307,8 +307,8 @@ void CheckThread::parseClangErrors(const QString &tool, const QString &file0, QS
307307
{
308308
QList<ErrorItem> errorItems;
309309
ErrorItem errorItem;
310-
QRegExp r1("(.+):([0-9]+):([0-9]+): (note|warning|error|fatal error): (.*)");
311-
QRegExp r2("(.*)\\[([a-zA-Z0-9\\-_\\.]+)\\]");
310+
const QRegularExpression r1("^(.+):([0-9]+):([0-9]+): (note|warning|error|fatal error): (.*)$");
311+
const QRegularExpression r2("^(.*)\\[([a-zA-Z0-9\\-_\\.]+)\\]$");
312312
QTextStream in(&err, QIODevice::ReadOnly);
313313
while (!in.atEnd()) {
314314
QString line = in.readLine();
@@ -327,31 +327,33 @@ void CheckThread::parseClangErrors(const QString &tool, const QString &file0, QS
327327
continue;
328328
}
329329

330-
if (!r1.exactMatch(line))
330+
const QRegularExpressionMatch r1MatchRes = r1.match(line);
331+
if (!r1MatchRes.hasMatch())
331332
continue;
332-
if (r1.cap(4) != "note") {
333+
if (r1MatchRes.captured(4) != "note") {
333334
errorItems.append(errorItem);
334335
errorItem = ErrorItem();
335-
errorItem.file0 = r1.cap(1);
336+
errorItem.file0 = r1MatchRes.captured(1);
336337
}
337338

338339
errorItem.errorPath.append(QErrorPathItem());
339-
errorItem.errorPath.last().file = r1.cap(1);
340-
errorItem.errorPath.last().line = r1.cap(2).toInt();
341-
errorItem.errorPath.last().column = r1.cap(3).toInt();
342-
if (r1.cap(4) == "warning")
340+
errorItem.errorPath.last().file = r1MatchRes.captured(1);
341+
errorItem.errorPath.last().line = r1MatchRes.captured(2).toInt();
342+
errorItem.errorPath.last().column = r1MatchRes.captured(3).toInt();
343+
if (r1MatchRes.captured(4) == "warning")
343344
errorItem.severity = Severity::SeverityType::warning;
344-
else if (r1.cap(4) == "error" || r1.cap(4) == "fatal error")
345+
else if (r1MatchRes.captured(4) == "error" || r1MatchRes.captured(4) == "fatal error")
345346
errorItem.severity = Severity::SeverityType::error;
346347

347348
QString message,id;
348-
if (r2.exactMatch(r1.cap(5))) {
349-
message = r2.cap(1);
350-
const QString id1(r2.cap(2));
349+
const QRegularExpressionMatch r2MatchRes = r2.match(r1MatchRes.captured(5));
350+
if (r2MatchRes.hasMatch()) {
351+
message = r2MatchRes.captured(1);
352+
const QString id1(r2MatchRes.captured(2));
351353
if (id1.startsWith("clang"))
352354
id = id1;
353355
else
354-
id = tool + '-' + r2.cap(2);
356+
id = tool + '-' + r2MatchRes.captured(2);
355357
if (tool == CLANG_TIDY) {
356358
if (id1.startsWith("performance"))
357359
errorItem.severity = Severity::SeverityType::performance;
@@ -363,7 +365,7 @@ void CheckThread::parseClangErrors(const QString &tool, const QString &file0, QS
363365
errorItem.severity = Severity::SeverityType::style;
364366
}
365367
} else {
366-
message = r1.cap(5);
368+
message = r1MatchRes.captured(5);
367369
id = CLANG_ANALYZER;
368370
}
369371

gui/cppcheck_de.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1723,82 +1723,82 @@ Options:
17231723
<context>
17241724
<name>ProjectFileDialog</name>
17251725
<message>
1726-
<location filename="projectfiledialog.cpp" line="85"/>
1726+
<location filename="projectfiledialog.cpp" line="86"/>
17271727
<source>Project file: %1</source>
17281728
<translation>Projektdatei: %1</translation>
17291729
</message>
17301730
<message>
1731-
<location filename="projectfiledialog.cpp" line="460"/>
1731+
<location filename="projectfiledialog.cpp" line="461"/>
17321732
<source>Select Cppcheck build dir</source>
17331733
<translation>Wähle Cppcheck-Erstellungsverzeichnis</translation>
17341734
</message>
17351735
<message>
1736-
<location filename="projectfiledialog.cpp" line="756"/>
1736+
<location filename="projectfiledialog.cpp" line="757"/>
17371737
<source>Select include directory</source>
17381738
<translation>Wähle Include-Verzeichnisse</translation>
17391739
</message>
17401740
<message>
1741-
<location filename="projectfiledialog.cpp" line="736"/>
1741+
<location filename="projectfiledialog.cpp" line="737"/>
17421742
<source>Select a directory to check</source>
17431743
<translation>Wähle zu prüfendes Verzeichnis</translation>
17441744
</message>
17451745
<message>
1746-
<location filename="projectfiledialog.cpp" line="347"/>
1746+
<location filename="projectfiledialog.cpp" line="348"/>
17471747
<source>(no rule texts file)</source>
17481748
<translation>(keine Regeltexte)</translation>
17491749
</message>
17501750
<message>
1751-
<location filename="projectfiledialog.cpp" line="353"/>
1751+
<location filename="projectfiledialog.cpp" line="354"/>
17521752
<source>Clang-tidy (not found)</source>
17531753
<translation>Clang-tidy (nicht gefunden)</translation>
17541754
</message>
17551755
<message>
1756-
<location filename="projectfiledialog.cpp" line="500"/>
1756+
<location filename="projectfiledialog.cpp" line="501"/>
17571757
<source>Visual Studio</source>
17581758
<translation>Visual Studio</translation>
17591759
</message>
17601760
<message>
1761-
<location filename="projectfiledialog.cpp" line="501"/>
1761+
<location filename="projectfiledialog.cpp" line="502"/>
17621762
<source>Compile database</source>
17631763
<translation>Compilerdatenbank</translation>
17641764
</message>
17651765
<message>
1766-
<location filename="projectfiledialog.cpp" line="502"/>
1766+
<location filename="projectfiledialog.cpp" line="503"/>
17671767
<source>Borland C++ Builder 6</source>
17681768
<translation>Borland C++-Builder 6</translation>
17691769
</message>
17701770
<message>
1771-
<location filename="projectfiledialog.cpp" line="503"/>
1771+
<location filename="projectfiledialog.cpp" line="504"/>
17721772
<source>Import Project</source>
17731773
<translation>Projekt importieren</translation>
17741774
</message>
17751775
<message>
1776-
<location filename="projectfiledialog.cpp" line="776"/>
1776+
<location filename="projectfiledialog.cpp" line="777"/>
17771777
<source>Select directory to ignore</source>
17781778
<translation>Wähle zu ignorierendes Verzeichnis</translation>
17791779
</message>
17801780
<message>
1781-
<location filename="projectfiledialog.cpp" line="784"/>
1781+
<location filename="projectfiledialog.cpp" line="785"/>
17821782
<source>Source files</source>
17831783
<translation type="unfinished"></translation>
17841784
</message>
17851785
<message>
1786-
<location filename="projectfiledialog.cpp" line="785"/>
1786+
<location filename="projectfiledialog.cpp" line="786"/>
17871787
<source>All files</source>
17881788
<translation type="unfinished"></translation>
17891789
</message>
17901790
<message>
1791-
<location filename="projectfiledialog.cpp" line="786"/>
1791+
<location filename="projectfiledialog.cpp" line="787"/>
17921792
<source>Exclude file</source>
17931793
<translation type="unfinished"></translation>
17941794
</message>
17951795
<message>
1796-
<location filename="projectfiledialog.cpp" line="870"/>
1796+
<location filename="projectfiledialog.cpp" line="871"/>
17971797
<source>Select MISRA rule texts file</source>
17981798
<translation>Wähle MISRA-Regeltext-Datei</translation>
17991799
</message>
18001800
<message>
1801-
<location filename="projectfiledialog.cpp" line="872"/>
1801+
<location filename="projectfiledialog.cpp" line="873"/>
18021802
<source>MISRA rule texts file (%1)</source>
18031803
<translation>MISRA-Regeltext-Datei</translation>
18041804
</message>
@@ -1850,7 +1850,7 @@ Options:
18501850
<translation type="unfinished"></translation>
18511851
</message>
18521852
<message>
1853-
<location filename="projectfiledialog.cpp" line="242"/>
1853+
<location filename="projectfiledialog.cpp" line="243"/>
18541854
<source> (Not found)</source>
18551855
<translation> (nicht gefunden)</translation>
18561856
</message>

gui/cppcheck_es.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1849,72 +1849,72 @@ Options:
18491849
<context>
18501850
<name>ProjectFileDialog</name>
18511851
<message>
1852-
<location filename="projectfiledialog.cpp" line="85"/>
1852+
<location filename="projectfiledialog.cpp" line="86"/>
18531853
<source>Project file: %1</source>
18541854
<translation>Archivo de proyecto: %1</translation>
18551855
</message>
18561856
<message>
1857-
<location filename="projectfiledialog.cpp" line="460"/>
1857+
<location filename="projectfiledialog.cpp" line="461"/>
18581858
<source>Select Cppcheck build dir</source>
18591859
<translation type="unfinished"></translation>
18601860
</message>
18611861
<message>
1862-
<location filename="projectfiledialog.cpp" line="756"/>
1862+
<location filename="projectfiledialog.cpp" line="757"/>
18631863
<source>Select include directory</source>
18641864
<translation>Selecciona una carpeta para incluir</translation>
18651865
</message>
18661866
<message>
1867-
<location filename="projectfiledialog.cpp" line="736"/>
1867+
<location filename="projectfiledialog.cpp" line="737"/>
18681868
<source>Select a directory to check</source>
18691869
<translation>Selecciona la carpeta a comprobar</translation>
18701870
</message>
18711871
<message>
1872-
<location filename="projectfiledialog.cpp" line="347"/>
1872+
<location filename="projectfiledialog.cpp" line="348"/>
18731873
<source>(no rule texts file)</source>
18741874
<translation type="unfinished"></translation>
18751875
</message>
18761876
<message>
1877-
<location filename="projectfiledialog.cpp" line="353"/>
1877+
<location filename="projectfiledialog.cpp" line="354"/>
18781878
<source>Clang-tidy (not found)</source>
18791879
<translation type="unfinished"></translation>
18801880
</message>
18811881
<message>
1882-
<location filename="projectfiledialog.cpp" line="500"/>
1882+
<location filename="projectfiledialog.cpp" line="501"/>
18831883
<source>Visual Studio</source>
18841884
<translation type="unfinished"></translation>
18851885
</message>
18861886
<message>
1887-
<location filename="projectfiledialog.cpp" line="501"/>
1887+
<location filename="projectfiledialog.cpp" line="502"/>
18881888
<source>Compile database</source>
18891889
<translation type="unfinished"></translation>
18901890
</message>
18911891
<message>
1892-
<location filename="projectfiledialog.cpp" line="502"/>
1892+
<location filename="projectfiledialog.cpp" line="503"/>
18931893
<source>Borland C++ Builder 6</source>
18941894
<translation type="unfinished"></translation>
18951895
</message>
18961896
<message>
1897-
<location filename="projectfiledialog.cpp" line="503"/>
1897+
<location filename="projectfiledialog.cpp" line="504"/>
18981898
<source>Import Project</source>
18991899
<translation type="unfinished"></translation>
19001900
</message>
19011901
<message>
1902-
<location filename="projectfiledialog.cpp" line="776"/>
1902+
<location filename="projectfiledialog.cpp" line="777"/>
19031903
<source>Select directory to ignore</source>
19041904
<translation>Selecciona la carpeta a ignorar</translation>
19051905
</message>
19061906
<message>
1907-
<location filename="projectfiledialog.cpp" line="784"/>
1907+
<location filename="projectfiledialog.cpp" line="785"/>
19081908
<source>Source files</source>
19091909
<translation type="unfinished"></translation>
19101910
</message>
19111911
<message>
1912-
<location filename="projectfiledialog.cpp" line="785"/>
1912+
<location filename="projectfiledialog.cpp" line="786"/>
19131913
<source>All files</source>
19141914
<translation type="unfinished"></translation>
19151915
</message>
19161916
<message>
1917-
<location filename="projectfiledialog.cpp" line="786"/>
1917+
<location filename="projectfiledialog.cpp" line="787"/>
19181918
<source>Exclude file</source>
19191919
<translation type="unfinished"></translation>
19201920
</message>
@@ -1923,12 +1923,12 @@ Options:
19231923
<translation type="obsolete">Añadir supresión</translation>
19241924
</message>
19251925
<message>
1926-
<location filename="projectfiledialog.cpp" line="870"/>
1926+
<location filename="projectfiledialog.cpp" line="871"/>
19271927
<source>Select MISRA rule texts file</source>
19281928
<translation type="unfinished"></translation>
19291929
</message>
19301930
<message>
1931-
<location filename="projectfiledialog.cpp" line="872"/>
1931+
<location filename="projectfiledialog.cpp" line="873"/>
19321932
<source>MISRA rule texts file (%1)</source>
19331933
<translation type="unfinished"></translation>
19341934
</message>
@@ -1980,7 +1980,7 @@ Options:
19801980
<translation type="unfinished"></translation>
19811981
</message>
19821982
<message>
1983-
<location filename="projectfiledialog.cpp" line="242"/>
1983+
<location filename="projectfiledialog.cpp" line="243"/>
19841984
<source> (Not found)</source>
19851985
<translation type="unfinished"></translation>
19861986
</message>

0 commit comments

Comments
 (0)