diff --git a/launcher/Application.cpp b/launcher/Application.cpp index 0ed1cc71d..ac6d7a114 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -241,7 +241,7 @@ void appDebugOutput(QtMsgType type, const QMessageLogContext& context, const QSt QString out = qFormatLogMessage(type, context, msg); if (APPLICATION->logModel) { - APPLICATION->logModel->append(MessageLevel::getLevel(type), out); + APPLICATION->logModel->append(messageLevelFromQtMsgType(type), out); } out += QChar::LineFeed; diff --git a/launcher/LoggedProcess.h b/launcher/LoggedProcess.h index c01d464d1..ce35b27e8 100644 --- a/launcher/LoggedProcess.h +++ b/launcher/LoggedProcess.h @@ -58,7 +58,7 @@ class LoggedProcess : public QProcess { void setDetachable(bool detachable); signals: - void log(QStringList lines, MessageLevel::Enum level); + void log(QStringList lines, MessageLevel level); void stateChanged(LoggedProcess::State state); public slots: diff --git a/launcher/MessageLevel.cpp b/launcher/MessageLevel.cpp index c1c190c72..913902517 100644 --- a/launcher/MessageLevel.cpp +++ b/launcher/MessageLevel.cpp @@ -1,6 +1,6 @@ #include "MessageLevel.h" -MessageLevel::Enum MessageLevel::getLevel(const QString& levelName) +MessageLevel messageLevelFromName(const QString& levelName) { QString name = levelName.toUpper(); if (name == "LAUNCHER") @@ -25,7 +25,7 @@ MessageLevel::Enum MessageLevel::getLevel(const QString& levelName) return MessageLevel::Unknown; } -MessageLevel::Enum MessageLevel::getLevel(QtMsgType type) +MessageLevel messageLevelFromQtMsgType(QtMsgType type) { switch (type) { case QtDebugMsg: @@ -43,19 +43,19 @@ MessageLevel::Enum MessageLevel::getLevel(QtMsgType type) } } -MessageLevel::Enum MessageLevel::fromLine(QString& line) +MessageLevel messageLevelFromLine(QString& line) { // Level prefix int endmark = line.indexOf("]!"); if (line.startsWith("!![") && endmark != -1) { - auto level = MessageLevel::getLevel(line.left(endmark).mid(3)); + auto level = messageLevelFromName(line.left(endmark).mid(3)); line = line.mid(endmark + 2); return level; } return MessageLevel::Unknown; } -MessageLevel::Enum MessageLevel::fromLauncherLine(QString& line) +MessageLevel messageLevelFromLauncherLine(QString& line) { // Level prefix int startMark = 0; @@ -63,7 +63,7 @@ MessageLevel::Enum MessageLevel::fromLauncherLine(QString& line) ++startMark; int endmark = line.indexOf(":"); if (startMark < line.size() && endmark != -1) { - auto level = MessageLevel::getLevel(line.left(endmark).mid(startMark)); + auto level = messageLevelFromName(line.left(endmark).mid(startMark)); line = line.mid(endmark + 2); return level; } diff --git a/launcher/MessageLevel.h b/launcher/MessageLevel.h index 4c840dfc1..a79c36d02 100644 --- a/launcher/MessageLevel.h +++ b/launcher/MessageLevel.h @@ -7,8 +7,7 @@ * @brief the MessageLevel Enum * defines what level a log message is */ -namespace MessageLevel { -enum Enum { +enum class MessageLevel { Unknown, /**< No idea what this is or where it came from */ StdOut, /**< Undetermined stderr messages */ StdErr, /**< Undetermined stdout messages */ @@ -21,12 +20,11 @@ enum Enum { Error, /**< Errors */ Fatal, /**< Fatal Errors */ }; -MessageLevel::Enum getLevel(const QString& levelName); -MessageLevel::Enum getLevel(QtMsgType type); +MessageLevel messageLevelFromName(const QString& levelName); +MessageLevel messageLevelFromQtMsgType(QtMsgType type); /* Get message level from a line. Line is modified if it was successful. */ -MessageLevel::Enum fromLine(QString& line); +MessageLevel messageLevelFromLine(QString& line); /* Get message level from a line from the launcher log. Line is modified if it was successful. */ -MessageLevel::Enum fromLauncherLine(QString& line); -} // namespace MessageLevel +MessageLevel messageLevelFromLauncherLine(QString& line); diff --git a/launcher/launch/LaunchStep.h b/launcher/launch/LaunchStep.h index d49d7545b..80dcd31e9 100644 --- a/launcher/launch/LaunchStep.h +++ b/launcher/launch/LaunchStep.h @@ -28,8 +28,8 @@ class LaunchStep : public Task { virtual ~LaunchStep() = default; signals: - void logLines(QStringList lines, MessageLevel::Enum level); - void logLine(QString line, MessageLevel::Enum level); + void logLines(QStringList lines, MessageLevel level); + void logLine(QString line, MessageLevel level); void readyForLaunch(); void progressReportingRequest(); diff --git a/launcher/launch/LaunchTask.cpp b/launcher/launch/LaunchTask.cpp index 4468a2a77..68e706c11 100644 --- a/launcher/launch/LaunchTask.cpp +++ b/launcher/launch/LaunchTask.cpp @@ -214,7 +214,7 @@ shared_qobject_ptr LaunchTask::getLogModel() return m_logModel; } -bool LaunchTask::parseXmlLogs(QString const& line, MessageLevel::Enum level) +bool LaunchTask::parseXmlLogs(QString const& line, MessageLevel level) { LogParser* parser; switch (level) { @@ -254,7 +254,7 @@ bool LaunchTask::parseXmlLogs(QString const& line, MessageLevel::Enum level) } else if (std::holds_alternative(item)) { auto msg = std::get(item).message; - MessageLevel::Enum newLevel = MessageLevel::fromLine(msg); + MessageLevel newLevel = messageLevelFromLine(msg); if (newLevel == MessageLevel::Unknown) newLevel = LogParser::guessLevel(line); @@ -271,14 +271,14 @@ bool LaunchTask::parseXmlLogs(QString const& line, MessageLevel::Enum level) return true; } -void LaunchTask::onLogLines(const QStringList& lines, MessageLevel::Enum defaultLevel) +void LaunchTask::onLogLines(const QStringList& lines, MessageLevel defaultLevel) { for (auto& line : lines) { onLogLine(line, defaultLevel); } } -void LaunchTask::onLogLine(QString line, MessageLevel::Enum level) +void LaunchTask::onLogLine(QString line, MessageLevel level) { if (parseXmlLogs(line, level)) { return; diff --git a/launcher/launch/LaunchTask.h b/launcher/launch/LaunchTask.h index 5effab980..db7e453e4 100644 --- a/launcher/launch/LaunchTask.h +++ b/launcher/launch/LaunchTask.h @@ -106,8 +106,8 @@ class LaunchTask : public Task { void requestLogging(); public slots: - void onLogLines(const QStringList& lines, MessageLevel::Enum defaultLevel = MessageLevel::Launcher); - void onLogLine(QString line, MessageLevel::Enum defaultLevel = MessageLevel::Launcher); + void onLogLines(const QStringList& lines, MessageLevel defaultLevel = MessageLevel::Launcher); + void onLogLine(QString line, MessageLevel defaultLevel = MessageLevel::Launcher); void onReadyForLaunch(); void onStepFinished(); void onProgressReportingRequested(); @@ -116,7 +116,7 @@ class LaunchTask : public Task { void finalizeSteps(bool successful, const QString& error); protected: - bool parseXmlLogs(QString const& line, MessageLevel::Enum level); + bool parseXmlLogs(QString const& line, MessageLevel level); protected: /* data */ MinecraftInstancePtr m_instance; diff --git a/launcher/launch/LogModel.cpp b/launcher/launch/LogModel.cpp index f13e2c27f..117867c1d 100644 --- a/launcher/launch/LogModel.cpp +++ b/launcher/launch/LogModel.cpp @@ -24,13 +24,13 @@ QVariant LogModel::data(const QModelIndex& index, int role) const return m_content[realRow].line; } if (role == LevelRole) { - return m_content[realRow].level; + return static_cast(m_content[realRow].level); } return QVariant(); } -void LogModel::append(MessageLevel::Enum level, QString line) +void LogModel::append(MessageLevel level, QString line) { if (m_suspended) { return; @@ -167,7 +167,7 @@ bool LogModel::isOverFlow() return m_numLines >= m_maxLines && m_stopOnOverflow; } -MessageLevel::Enum LogModel::previousLevel() +MessageLevel LogModel::previousLevel() { if (m_numLines > 0) { return m_content[m_numLines - 1].level; diff --git a/launcher/launch/LogModel.h b/launcher/launch/LogModel.h index 4521bac17..847a41f5f 100644 --- a/launcher/launch/LogModel.h +++ b/launcher/launch/LogModel.h @@ -12,7 +12,7 @@ class LogModel : public QAbstractListModel { int rowCount(const QModelIndex& parent = QModelIndex()) const; QVariant data(const QModelIndex& index, int role) const; - void append(MessageLevel::Enum, QString line); + void append(MessageLevel, QString line); void clear(); void suspend(bool suspend); @@ -31,13 +31,13 @@ class LogModel : public QAbstractListModel { void setColorLines(bool state); bool colorLines() const; - MessageLevel::Enum previousLevel(); + MessageLevel previousLevel(); enum Roles { LevelRole = Qt::UserRole }; private /* types */: struct entry { - MessageLevel::Enum level = MessageLevel::Enum::Unknown; + MessageLevel level = MessageLevel::Unknown; QString line; }; diff --git a/launcher/launch/steps/TextPrint.cpp b/launcher/launch/steps/TextPrint.cpp index 0dec35b79..53aff807e 100644 --- a/launcher/launch/steps/TextPrint.cpp +++ b/launcher/launch/steps/TextPrint.cpp @@ -1,11 +1,11 @@ #include "TextPrint.h" -TextPrint::TextPrint(LaunchTask* parent, const QStringList& lines, MessageLevel::Enum level) : LaunchStep(parent) +TextPrint::TextPrint(LaunchTask* parent, const QStringList& lines, MessageLevel level) : LaunchStep(parent) { m_lines = lines; m_level = level; } -TextPrint::TextPrint(LaunchTask* parent, const QString& line, MessageLevel::Enum level) : LaunchStep(parent) +TextPrint::TextPrint(LaunchTask* parent, const QString& line, MessageLevel level) : LaunchStep(parent) { m_lines.append(line); m_level = level; diff --git a/launcher/launch/steps/TextPrint.h b/launcher/launch/steps/TextPrint.h index a96c2f887..4479a260a 100644 --- a/launcher/launch/steps/TextPrint.h +++ b/launcher/launch/steps/TextPrint.h @@ -26,8 +26,8 @@ class TextPrint : public LaunchStep { Q_OBJECT public: - explicit TextPrint(LaunchTask* parent, const QStringList& lines, MessageLevel::Enum level); - explicit TextPrint(LaunchTask* parent, const QString& line, MessageLevel::Enum level); + explicit TextPrint(LaunchTask* parent, const QStringList& lines, MessageLevel level); + explicit TextPrint(LaunchTask* parent, const QString& line, MessageLevel level); virtual ~TextPrint() {}; virtual void executeTask(); @@ -36,5 +36,5 @@ class TextPrint : public LaunchStep { private: QStringList m_lines; - MessageLevel::Enum m_level; + MessageLevel m_level; }; diff --git a/launcher/logs/LogParser.cpp b/launcher/logs/LogParser.cpp index 962e5184f..b33f9546f 100644 --- a/launcher/logs/LogParser.cpp +++ b/launcher/logs/LogParser.cpp @@ -60,7 +60,7 @@ std::optional LogParser::parseAttributes() entry.timestamp = QDateTime::fromSecsSinceEpoch(value.trimmed().toLongLong()); } else if (name == "level"_L1) { entry.levelText = value.trimmed().toString(); - entry.level = MessageLevel::getLevel(entry.levelText); + entry.level = messageLevelFromName(entry.levelText); } else if (name == "thread"_L1) { entry.thread = value.trimmed().toString(); } @@ -320,7 +320,7 @@ std::optional LogParser::parseLog4J() throw std::runtime_error("unreachable: already verified this was a complete log4j:Event"); } -MessageLevel::Enum LogParser::guessLevel(const QString& line) +MessageLevel LogParser::guessLevel(const QString& line) { static const QRegularExpression LINE_WITH_LEVEL("^\\[(?[0-9:]+)\\] \\[[^/]+/(?[^\\]]+)\\]"); auto match = LINE_WITH_LEVEL.match(line); @@ -329,7 +329,7 @@ MessageLevel::Enum LogParser::guessLevel(const QString& line) QString timestamp = match.captured("timestamp"); QString levelStr = match.captured("level"); - return MessageLevel::getLevel(levelStr); + return messageLevelFromName(levelStr); } else { // Old style forge logs if (line.contains("[INFO]") || line.contains("[CONFIG]") || line.contains("[FINE]") || line.contains("[FINER]") || diff --git a/launcher/logs/LogParser.h b/launcher/logs/LogParser.h index 609913d3b..9741a9809 100644 --- a/launcher/logs/LogParser.h +++ b/launcher/logs/LogParser.h @@ -31,7 +31,7 @@ class LogParser { public: struct LogEntry { QString logger; - MessageLevel::Enum level; + MessageLevel level; QString levelText; QDateTime timestamp; QString thread; @@ -59,7 +59,7 @@ class LogParser { std::optional getError(); /// guess log level from a line of game log - static MessageLevel::Enum guessLevel(const QString& line); + static MessageLevel guessLevel(const QString& line); protected: std::optional parseAttributes(); diff --git a/launcher/minecraft/launch/LauncherPartLaunch.cpp b/launcher/minecraft/launch/LauncherPartLaunch.cpp index d824c904b..ee754dc85 100644 --- a/launcher/minecraft/launch/LauncherPartLaunch.cpp +++ b/launcher/minecraft/launch/LauncherPartLaunch.cpp @@ -56,7 +56,7 @@ LauncherPartLaunch::LauncherPartLaunch(LaunchTask* parent) static const QRegularExpression s_settingUser(".*Setting user.+", QRegularExpression::CaseInsensitiveOption); std::shared_ptr connection{ new QMetaObject::Connection }; *connection = connect(&m_process, &LoggedProcess::log, this, - [connection](const QStringList& lines, [[maybe_unused]] MessageLevel::Enum level) { + [connection](const QStringList& lines, [[maybe_unused]] MessageLevel level) { qDebug() << lines; if (lines.filter(s_settingUser).length() != 0) { APPLICATION->closeAllWindows(); diff --git a/launcher/ui/pages/instance/LogPage.cpp b/launcher/ui/pages/instance/LogPage.cpp index 928368236..02be853c0 100644 --- a/launcher/ui/pages/instance/LogPage.cpp +++ b/launcher/ui/pages/instance/LogPage.cpp @@ -60,7 +60,7 @@ QVariant LogFormatProxyModel::data(const QModelIndex& index, int role) const case Qt::FontRole: return m_font; case Qt::ForegroundRole: { - auto level = static_cast(QIdentityProxyModel::data(index, LogModel::LevelRole).toInt()); + auto level = static_cast(QIdentityProxyModel::data(index, LogModel::LevelRole).toInt()); QColor result = colors.foreground.value(level); if (result.isValid()) @@ -69,7 +69,7 @@ QVariant LogFormatProxyModel::data(const QModelIndex& index, int role) const break; } case Qt::BackgroundRole: { - auto level = static_cast(QIdentityProxyModel::data(index, LogModel::LevelRole).toInt()); + auto level = static_cast(QIdentityProxyModel::data(index, LogModel::LevelRole).toInt()); QColor result = colors.background.value(level); if (result.isValid()) diff --git a/launcher/ui/pages/instance/OtherLogsPage.cpp b/launcher/ui/pages/instance/OtherLogsPage.cpp index 2449ecb2b..c8d0c3346 100644 --- a/launcher/ui/pages/instance/OtherLogsPage.cpp +++ b/launcher/ui/pages/instance/OtherLogsPage.cpp @@ -274,18 +274,18 @@ void OtherLogsPage::reload() showTooBig(); return; } - MessageLevel::Enum last = MessageLevel::Unknown; + MessageLevel last = MessageLevel::Unknown; auto handleLine = [this, &last](QString line) { if (line.isEmpty()) return false; if (line.back() == '\n') line = line.remove(line.size() - 1, 1); - MessageLevel::Enum level = MessageLevel::Unknown; + MessageLevel level = MessageLevel::Unknown; QString lineTemp = line; // don't edit out the time and level for clarity if (!m_instance) { - level = MessageLevel::fromLauncherLine(lineTemp); + level = messageLevelFromLauncherLine(lineTemp); } else { level = LogParser::guessLevel(line); diff --git a/launcher/ui/themes/CustomTheme.cpp b/launcher/ui/themes/CustomTheme.cpp index 560d0ece8..e32e53381 100644 --- a/launcher/ui/themes/CustomTheme.cpp +++ b/launcher/ui/themes/CustomTheme.cpp @@ -229,7 +229,7 @@ bool CustomTheme::read(const QString& path, bool& hasCustomLogColors) hasCustomLogColors = true; auto logColorsRoot = Json::requireObject(root, "logColors"); - auto readAndSetLogColor = [this, readColor, logColorsRoot](MessageLevel::Enum level, bool fg, const QString& colorName) { + auto readAndSetLogColor = [this, readColor, logColorsRoot](MessageLevel level, bool fg, const QString& colorName) { auto color = readColor(logColorsRoot, colorName); if (color.isValid()) { if (fg) diff --git a/launcher/ui/themes/ITheme.h b/launcher/ui/themes/ITheme.h index a3dd14d09..6e0e613f9 100644 --- a/launcher/ui/themes/ITheme.h +++ b/launcher/ui/themes/ITheme.h @@ -42,8 +42,8 @@ class QStyle; struct LogColors { - QMap background; - QMap foreground; + QMap background; + QMap foreground; }; // TODO: rename to Theme; this is not an interface as it contains method implementations diff --git a/launcher/ui/widgets/AppearanceWidget.cpp b/launcher/ui/widgets/AppearanceWidget.cpp index cfe3b8c0d..5ab622ef9 100644 --- a/launcher/ui/widgets/AppearanceWidget.cpp +++ b/launcher/ui/widgets/AppearanceWidget.cpp @@ -232,7 +232,7 @@ void AppearanceWidget::updateConsolePreview() m_ui->consolePreview->clear(); m_defaultFormat.setFont(QFont(fontFamily, fontSize)); - auto print = [this, colors](const QString& message, MessageLevel::Enum level) { + auto print = [this, colors](const QString& message, MessageLevel level) { QTextCharFormat format(m_defaultFormat); QColor bg = colors.background.value(level); diff --git a/tests/XmlLogs_test.cpp b/tests/XmlLogs_test.cpp index 9e7aed974..75a2dd90c 100644 --- a/tests/XmlLogs_test.cpp +++ b/tests/XmlLogs_test.cpp @@ -47,10 +47,10 @@ class XmlLogParseTest : public QObject { QStringList shortTextLevels_s = QString::fromUtf8(FS::read(FS::PathCombine(source, "vanilla-1.21.5-levels.txt"))) .split(QRegularExpression("\n|\r\n|\r"), Qt::SkipEmptyParts); - QList shortTextLevels; + QList shortTextLevels; shortTextLevels.reserve(24); std::transform(shortTextLevels_s.cbegin(), shortTextLevels_s.cend(), std::back_inserter(shortTextLevels), - [](const QString& line) { return MessageLevel::getLevel(line.trimmed()); }); + [](const QString& line) { return messageLevelFromName(line.trimmed()); }); QString longXml = QString::fromUtf8(FS::read(FS::PathCombine(source, "TerraFirmaGreg-Modern-forge.xml.log"))); QString longText = QString::fromUtf8(FS::read(FS::PathCombine(source, "TerraFirmaGreg-Modern-forge.text.log"))); @@ -59,18 +59,18 @@ class XmlLogParseTest : public QObject { QStringList longTextLevelsXml_s = QString::fromUtf8(FS::read(FS::PathCombine(source, "TerraFirmaGreg-Modern-xml-levels.txt"))) .split(QRegularExpression("\n|\r\n|\r"), Qt::SkipEmptyParts); - QList longTextLevelsPlain; + QList longTextLevelsPlain; longTextLevelsPlain.reserve(974); std::transform(longTextLevels_s.cbegin(), longTextLevels_s.cend(), std::back_inserter(longTextLevelsPlain), - [](const QString& line) { return MessageLevel::getLevel(line.trimmed()); }); - QList longTextLevelsXml; + [](const QString& line) { return messageLevelFromName(line.trimmed()); }); + QList longTextLevelsXml; longTextLevelsXml.reserve(896); std::transform(longTextLevelsXml_s.cbegin(), longTextLevelsXml_s.cend(), std::back_inserter(longTextLevelsXml), - [](const QString& line) { return MessageLevel::getLevel(line.trimmed()); }); + [](const QString& line) { return messageLevelFromName(line.trimmed()); }); QTest::addColumn("log"); QTest::addColumn("num_entries"); - QTest::addColumn>("entry_levels"); + QTest::addColumn>("entry_levels"); QTest::newRow("short-vanilla-plain") << shortText << 25 << shortTextLevels; QTest::newRow("short-vanilla-xml") << shortXml << 25 << shortTextLevels; @@ -82,9 +82,9 @@ class XmlLogParseTest : public QObject { { QFETCH(QString, log); QFETCH(int, num_entries); - QFETCH(QList, entry_levels); + QFETCH(QList, entry_levels); - QList> entries = {}; + QList> entries = {}; QBENCHMARK { @@ -93,10 +93,10 @@ class XmlLogParseTest : public QObject { QCOMPARE(entries.length(), num_entries); - QList levels = {}; + QList levels = {}; std::transform(entries.cbegin(), entries.cend(), std::back_inserter(levels), - [](std::pair entry) { return entry.first; }); + [](std::pair entry) { return entry.first; }); QCOMPARE(levels, entry_levels); } @@ -104,10 +104,10 @@ class XmlLogParseTest : public QObject { private: LogParser m_parser; - QList> parseLines(const QStringList& lines) + QList> parseLines(const QStringList& lines) { - QList> out; - MessageLevel::Enum last = MessageLevel::Unknown; + QList> out; + MessageLevel last = MessageLevel::Unknown; for (const auto& line : lines) { m_parser.appendLine(line);