GH-1197 finish color stuff

This commit is contained in:
Petr Mrázek
2015-08-20 01:49:03 +02:00
parent 6858f1dd62
commit d0e88011dc
9 changed files with 175 additions and 88 deletions

View File

@@ -10,7 +10,7 @@
#include "launch/LaunchTask.h"
#include <settings/Setting.h>
#include "GuiUtil.h"
#include <Colors.h>
#include <ColorCache.h>
LogPage::LogPage(std::shared_ptr<LaunchTask> proc, QWidget *parent)
: QWidget(parent), ui(new Ui::LogPage), m_process(proc)
@@ -41,6 +41,10 @@ LogPage::LogPage(std::shared_ptr<LaunchTask> proc, QWidget *parent)
}
ui->text->setMaximumBlockCount(maxLines);
auto origForeground = ui->text->palette().color(ui->text->foregroundRole());
auto origBackground = ui->text->palette().color(ui->text->backgroundRole());
m_colors.reset(new LogColorCache(origForeground, origBackground));
m_stopOnOverflow = MMC->settings()->get("ConsoleOverflowStop").toBool();
auto findShortcut = new QShortcut(QKeySequence(QKeySequence::Find), this);
@@ -204,48 +208,8 @@ void LogPage::write(QString data, MessageLevel::Enum mode)
QListIterator<QString> 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:
{
foreground(QColor("purple"));
break;
}
case MessageLevel::Debug:
{
foreground(QColor("green"));
break;
}
case MessageLevel::Warning:
{
foreground(QColor("orange"));
break;
}
case MessageLevel::Error:
{
foreground(QColor("red"));
break;
}
case MessageLevel::Fatal:
{
origBackground = QColor("black");
foreground(QColor("red"));
format.setBackground(QColor("black"));
break;
}
case MessageLevel::Info:
case MessageLevel::Message:
default:
{
foreground(QColor("black"));
}
}
format.setForeground(m_colors->getFront(mode));
format.setBackground(m_colors->getBack(mode));
while (iter.hasNext())
{

View File

@@ -21,6 +21,7 @@
#include "launch/LaunchTask.h"
#include "BasePage.h"
#include <MultiMC.h>
#include <ColorCache.h>
namespace Ui
{
@@ -86,4 +87,5 @@ private:
QTextCharFormat * defaultFormat;
BasePageContainer * m_parentContainer;
std::unique_ptr<LogColorCache> m_colors;
};

View File

@@ -40,6 +40,10 @@ enum InstSortMode
MultiMCPage::MultiMCPage(QWidget *parent) : QWidget(parent), ui(new Ui::MultiMCPage)
{
ui->setupUi(this);
auto origForeground = ui->fontPreview->palette().color(ui->fontPreview->foregroundRole());
auto origBackground = ui->fontPreview->palette().color(ui->fontPreview->backgroundRole());
m_colors.reset(new LogColorCache(origForeground, origBackground));
ui->sortingModeGroup->setId(ui->sortByNameBtn, Sort_Name);
ui->sortingModeGroup->setId(ui->sortLastLaunchedBtn, Sort_LastLaunch);
@@ -424,7 +428,7 @@ void MultiMCPage::refreshFontPreview()
defaultFormat->setFont(QFont(fontFamily, fontSize));
{
QTextCharFormat format(*defaultFormat);
format.setForeground(QColor("red"));
format.setForeground(m_colors->getFront(MessageLevel::Error));
// append a paragraph/line
auto workCursor = ui->fontPreview->textCursor();
workCursor.movePosition(QTextCursor::End);
@@ -433,6 +437,7 @@ void MultiMCPage::refreshFontPreview()
}
{
QTextCharFormat format(*defaultFormat);
format.setForeground(m_colors->getFront(MessageLevel::Message));
// append a paragraph/line
auto workCursor = ui->fontPreview->textCursor();
workCursor.movePosition(QTextCursor::End);
@@ -441,7 +446,7 @@ void MultiMCPage::refreshFontPreview()
}
{
QTextCharFormat format(*defaultFormat);
format.setForeground(QColor("orange"));
format.setForeground(m_colors->getFront(MessageLevel::Warning));
// append a paragraph/line
auto workCursor = ui->fontPreview->textCursor();
workCursor.movePosition(QTextCursor::End);

View File

@@ -21,6 +21,7 @@
#include "java/JavaChecker.h"
#include "pages/BasePage.h"
#include <MultiMC.h>
#include "ColorCache.h"
class QTextCharFormat;
class SettingsObject;
@@ -97,4 +98,6 @@ private:
// default format for the font preview...
QTextCharFormat *defaultFormat;
std::unique_ptr<LogColorCache> m_colors;
};