summaryrefslogtreecommitdiff
path: root/utils/rbutilqt/base/utils.cpp
diff options
context:
space:
mode:
authorDominik Riebeling <Dominik.Riebeling@gmail.com>2020-07-25 20:04:22 +0200
committerDominik Riebeling <Dominik.Riebeling@gmail.com>2021-12-24 18:05:53 +0100
commit9e28474e47d1cdcb432bb43b32b06f693f4fca3f (patch)
tree58dbfd2d43e152e582b2364a8c4f1a25d68869bd /utils/rbutilqt/base/utils.cpp
parent72071d108cca08caa199708b6929a959032fc094 (diff)
downloadrockbox-9e28474e47d1cdcb432bb43b32b06f693f4fca3f.tar.gz
rockbox-9e28474e47d1cdcb432bb43b32b06f693f4fca3f.zip
rbutil: Replace QRegExp with QRegularExpression.
The former is not part of Qt6 anymore, while the latter has been introduced with Qt5. We don't support Qt4 anymore, so move to QRegularExpression. Change-Id: Icc15ef422790f3740660c5581294aa0536f46b1f
Diffstat (limited to 'utils/rbutilqt/base/utils.cpp')
-rw-r--r--utils/rbutilqt/base/utils.cpp40
1 files changed, 21 insertions, 19 deletions
diff --git a/utils/rbutilqt/base/utils.cpp b/utils/rbutilqt/base/utils.cpp
index f2d3f04887..5a9432c69c 100644
--- a/utils/rbutilqt/base/utils.cpp
+++ b/utils/rbutilqt/base/utils.cpp
@@ -118,7 +118,8 @@ QString Utils::resolvePathCase(QString path)
118 // need to filter using QRegExp as QStringList::filter(QString) 118 // need to filter using QRegExp as QStringList::filter(QString)
119 // matches any substring 119 // matches any substring
120 QString expr = QString("^" + elems.at(i) + "$"); 120 QString expr = QString("^" + elems.at(i) + "$");
121 QRegExp rx = QRegExp(expr, Qt::CaseInsensitive); 121 QRegularExpression rx = QRegularExpression(expr,
122 QRegularExpression::CaseInsensitiveOption);
122 QStringList a = direlems.filter(rx); 123 QStringList a = direlems.filter(rx);
123 124
124 if(a.size() != 1) 125 if(a.size() != 1)
@@ -403,9 +404,10 @@ QString Utils::checkEnvironment(bool permission)
403 */ 404 */
404QString Utils::trimVersionString(QString s) 405QString Utils::trimVersionString(QString s)
405{ 406{
406 QRegExp r = QRegExp(".*([\\d\\.]+\\d+[a-z]?).*"); 407 QRegularExpression r = QRegularExpression("^\\D*([\\d\\.]+\\d+[a-z]?).*");
407 if(r.indexIn(s) != -1) { 408 QRegularExpressionMatch match = r.match(s);
408 return r.cap(1); 409 if(match.hasMatch()) {
410 return match.captured(1);
409 } 411 }
410 return s; 412 return s;
411} 413}
@@ -428,15 +430,15 @@ int Utils::compareVersionStrings(QString s1, QString s2)
428 430
429 while(!a.isEmpty() || !b.isEmpty()) { 431 while(!a.isEmpty() || !b.isEmpty()) {
430 // trim all leading non-digits and non-dots (dots are removed afterwards) 432 // trim all leading non-digits and non-dots (dots are removed afterwards)
431 a.remove(QRegExp("^[^\\d\\.]*")); 433 a.remove(QRegularExpression("^[^\\d\\.]*"));
432 b.remove(QRegExp("^[^\\d\\.]*")); 434 b.remove(QRegularExpression("^[^\\d\\.]*"));
433 435
434 // trim all trailing non-digits for conversion (QString::toInt() 436 // trim all trailing non-digits for conversion (QString::toInt()
435 // requires this). Copy strings first as replace() changes the string. 437 // requires this). Copy strings first as replace() changes the string.
436 QString numa = a; 438 QString numa = a;
437 QString numb = b; 439 QString numb = b;
438 numa.remove(QRegExp("\\D+.*$")); 440 numa.remove(QRegularExpression("\\D+.*$"));
439 numb.remove(QRegExp("\\D+.*$")); 441 numb.remove(QRegularExpression("\\D+.*$"));
440 442
441 // convert to number 443 // convert to number
442 bool ok1, ok2; 444 bool ok1, ok2;
@@ -455,15 +457,15 @@ int Utils::compareVersionStrings(QString s1, QString s2)
455 return (vala > valb) ? -1 : 1; 457 return (vala > valb) ? -1 : 1;
456 458
457 // trim leading digits. 459 // trim leading digits.
458 a.remove(QRegExp("^\\d*")); 460 a.remove(QRegularExpression("^\\d*"));
459 b.remove(QRegExp("^\\d*")); 461 b.remove(QRegularExpression("^\\d*"));
460 462
461 // If only one of the following characters is a dot that one is 463 // If only one of the following characters is a dot that one is
462 // "greater" then anything else. Make sure it's followed by a number, 464 // "greater" then anything else. Make sure it's followed by a number,
463 // Otherwise it might be the end of the string or suffix. Do this 465 // Otherwise it might be the end of the string or suffix. Do this
464 // before version addon characters check to avoid stopping too early. 466 // before version addon characters check to avoid stopping too early.
465 bool adot = a.contains(QRegExp("^[a-zA-Z]*\\.[0-9]")); 467 bool adot = a.contains(QRegularExpression("^[a-zA-Z]*\\.[0-9]"));
466 bool bdot = b.contains(QRegExp("^[a-zA-Z]*\\.[0-9]")); 468 bool bdot = b.contains(QRegularExpression("^[a-zA-Z]*\\.[0-9]"));
467 if(adot && !bdot) 469 if(adot && !bdot)
468 return -1; 470 return -1;
469 if(!adot && bdot) 471 if(!adot && bdot)
@@ -473,17 +475,17 @@ int Utils::compareVersionStrings(QString s1, QString s2)
473 // (version numbers like 1.2b.3 aren't handled). 475 // (version numbers like 1.2b.3 aren't handled).
474 QChar ltra; 476 QChar ltra;
475 QChar ltrb; 477 QChar ltrb;
476 if(a.contains(QRegExp("^[a-zA-Z]"))) 478 if(a.contains(QRegularExpression("^[a-zA-Z]")))
477 ltra = a.at(0); 479 ltra = a.at(0);
478 if(b.contains(QRegExp("^[a-zA-Z]"))) 480 if(b.contains(QRegularExpression("^[a-zA-Z]")))
479 ltrb = b.at(0); 481 ltrb = b.at(0);
480 if(ltra != ltrb) 482 if(ltra != ltrb)
481 return (ltra < ltrb) ? 1 : -1; 483 return (ltra < ltrb) ? 1 : -1;
482 484
483 // both are identical or no addon characters, ignore. 485 // both are identical or no addon characters, ignore.
484 // remove modifiers and following dot. 486 // remove modifiers and following dot.
485 a.remove(QRegExp("^[a-zA-Z]*\\.")); 487 a.remove(QRegularExpression("^[a-zA-Z]*\\."));
486 b.remove(QRegExp("^[a-zA-Z]*\\.")); 488 b.remove(QRegularExpression("^[a-zA-Z]*\\."));
487 } 489 }
488 490
489 // no differences found. 491 // no differences found.
@@ -630,7 +632,7 @@ QString Utils::resolveMountPoint(QString device)
630 632
631#if defined(Q_OS_WIN32) 633#if defined(Q_OS_WIN32)
632 QString result; 634 QString result;
633 unsigned int driveno = device.replace(QRegExp("^.*([0-9]+)"), "\\1").toInt(); 635 unsigned int driveno = device.replace(QRegularExpression("^.*([0-9]+)"), "\\1").toInt();
634 636
635 int letter; 637 int letter;
636 for(letter = 'A'; letter <= 'Z'; letter++) { 638 for(letter = 'A'; letter <= 'Z'; letter++) {
@@ -800,8 +802,8 @@ QMap<QString, QList<int> > Utils::findRunningProcess(QStringList names)
800 QStringList k(processlist.keys()); 802 QStringList k(processlist.keys());
801#if defined(Q_OS_WIN32) 803#if defined(Q_OS_WIN32)
802 // the process name might be truncated. Allow the extension to be partial. 804 // the process name might be truncated. Allow the extension to be partial.
803 int index = k.indexOf(QRegExp(names.at(i) + "(\\.(e(x(e?)?)?)?)?", 805 int index = k.indexOf(QRegularExpression(names.at(i) + "(\\.(e(x(e?)?)?)?)?",
804 Qt::CaseInsensitive)); 806 QRegularExpression::CaseInsensitiveOption));
805#else 807#else
806 int index = k.indexOf(names.at(i)); 808 int index = k.indexOf(names.at(i));
807#endif 809#endif