From 6858f1dd6294a93c1e1ec8007cb0434b53646488 Mon Sep 17 00:00:00 2001 From: Petr Mrázek Date: Wed, 19 Aug 2015 02:06:32 +0200 Subject: GH-1197 add console log color adaptation rainbow library was part of KDE - KGuiAddons --- application/pages/LogPage.cpp | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'application/pages/LogPage.cpp') diff --git a/application/pages/LogPage.cpp b/application/pages/LogPage.cpp index 77d5d6b8..280f64d0 100644 --- a/application/pages/LogPage.cpp +++ b/application/pages/LogPage.cpp @@ -10,6 +10,7 @@ #include "launch/LaunchTask.h" #include #include "GuiUtil.h" +#include LogPage::LogPage(std::shared_ptr proc, QWidget *parent) : QWidget(parent), ui(new Ui::LogPage), m_process(proc) @@ -203,31 +204,38 @@ void LogPage::write(QString data, MessageLevel::Enum mode) QListIterator iter(filtered); QTextCharFormat format(*defaultFormat); + auto origForeground = ui->text->palette().color(ui->text->foregroundRole()); + auto origBackground = ui->text->palette().color(ui->text->backgroundRole()); + auto foreground = [&](QColor foreColor) + { + format.setForeground(Color::blend(origForeground, origBackground, foreColor, 255)); + }; switch(mode) { case MessageLevel::MultiMC: { - format.setForeground(QColor("blue")); + foreground(QColor("purple")); break; } case MessageLevel::Debug: { - format.setForeground(QColor("green")); + foreground(QColor("green")); break; } case MessageLevel::Warning: { - format.setForeground(QColor("orange")); + foreground(QColor("orange")); break; } case MessageLevel::Error: { - format.setForeground(QColor("red")); + foreground(QColor("red")); break; } case MessageLevel::Fatal: { - format.setForeground(QColor("red")); + origBackground = QColor("black"); + foreground(QColor("red")); format.setBackground(QColor("black")); break; } @@ -235,7 +243,7 @@ void LogPage::write(QString data, MessageLevel::Enum mode) case MessageLevel::Message: default: { - // do nothing, keep original + foreground(QColor("black")); } } -- cgit