Changeset View
Changeset View
Standalone View
Standalone View
menufile.cpp
Show All 15 Lines | |||||
16 | * | 16 | * | ||
17 | */ | 17 | */ | ||
18 | 18 | | |||
19 | #include "menufile.h" | 19 | #include "menufile.h" | ||
20 | 20 | | |||
21 | #include <QDir> | 21 | #include <QDir> | ||
22 | #include <QFile> | 22 | #include <QFile> | ||
23 | #include <QTextStream> | 23 | #include <QTextStream> | ||
24 | #include <QRegExp> | 24 | #include <QRegularExpression> | ||
25 | #include <QFileInfo> | 25 | #include <QFileInfo> | ||
26 | #include <QStandardPaths> | 26 | #include <QStandardPaths> | ||
27 | 27 | | |||
28 | #include "kmenuedit_debug.h" | 28 | #include "kmenuedit_debug.h" | ||
29 | #include <KLocalizedString> | 29 | #include <KLocalizedString> | ||
30 | 30 | | |||
31 | const QString MenuFile::MF_MENU = QStringLiteral("Menu"); | 31 | const QString MenuFile::MF_MENU = QStringLiteral("Menu"); | ||
32 | const QString MenuFile::MF_PUBLIC_ID = QStringLiteral("-//freedesktop//DTD Menu 1.0//EN"); | 32 | const QString MenuFile::MF_PUBLIC_ID = QStringLiteral("-//freedesktop//DTD Menu 1.0//EN"); | ||
▲ Show 20 Lines • Show All 416 Lines • ▼ Show 20 Line(s) | |||||
449 | { | 449 | { | ||
450 | QDomElement elem = findMenu(m_doc.documentElement(), menuName, false); | 450 | QDomElement elem = findMenu(m_doc.documentElement(), menuName, false); | ||
451 | 451 | | |||
452 | QString result = newMenu; | 452 | QString result = newMenu; | ||
453 | if (result.endsWith(QLatin1Char('/'))) { | 453 | if (result.endsWith(QLatin1Char('/'))) { | ||
454 | result.chop(1); | 454 | result.chop(1); | ||
455 | } | 455 | } | ||
456 | 456 | | |||
457 | QRegExp r(QStringLiteral("(.*)(?=-\\d+)")); | 457 | static const QRegularExpression re(QStringLiteral("(.*)(?=-\\d+)")); | ||
458 | result = (r.indexIn(result) > -1) ? r.cap(1) : result; | 458 | const QRegularExpressionMatch match = re.match(result); | ||
459 | result = match.hasMatch() ? match.captured(1) : result; | ||||
459 | 460 | | |||
460 | int trunc = result.length(); // Position of trailing '/' | 461 | int trunc = result.length(); // Position of trailing '/' | ||
461 | 462 | | |||
462 | result.append(QLatin1Char('/')); | 463 | result.append(QLatin1Char('/')); | ||
463 | 464 | | |||
464 | for (int n = 1; ++n;) { | 465 | for (int n = 1; ++n;) { | ||
465 | if (findMenu(elem, result, false).isNull() && !excludeList.contains(result)) { | 466 | if (findMenu(elem, result, false).isNull() && !excludeList.contains(result)) { | ||
466 | return result; | 467 | return result; | ||
▲ Show 20 Lines • Show All 95 Lines • Show Last 20 Lines |