OutputFormatter::~OutputFormatter()
{
- if (m_formats)
- delete[] m_formats;
+ delete[] m_formats;
}
QPlainTextEdit *OutputFormatter::plainTextEdit() const
initFormats();
}
-void OutputFormatter::appendApplicationOutput(const QString &text, bool onStdErr)
+void OutputFormatter::appendMessage(const QString &text, OutputFormat format)
{
QTextCursor cursor(m_plainTextEdit->document());
cursor.movePosition(QTextCursor::End);
- cursor.insertText(text, format(onStdErr ? StdErrFormat : StdOutFormat));
+ cursor.insertText(text, m_formats[format]);
}
-void OutputFormatter::appendMessage(const QString &text, bool isError)
-{
- QTextCursor cursor(m_plainTextEdit->document());
- cursor.movePosition(QTextCursor::End);
- cursor.insertText(text, format(isError ? ErrorMessageFormat : NormalMessageFormat));
-}
-
-QTextCharFormat OutputFormatter::format(Format format)
+QTextCharFormat OutputFormatter::format(OutputFormat format) const
{
return m_formats[format];
}
namespace ProjectExplorer {
+enum OutputFormat
+{
+ NormalMessageFormat,
+ ErrorMessageFormat,
+ StdOutFormat,
+ StdErrFormat,
+ NumberOfFormats // Keep this entry last.
+};
+
class PROJECTEXPLORER_EXPORT OutputFormatter: public QObject
{
Q_OBJECT
QPlainTextEdit *plainTextEdit() const;
void setPlainTextEdit(QPlainTextEdit *plainText);
- virtual void appendApplicationOutput(const QString &text, bool onStdErr);
- virtual void appendMessage(const QString &text, bool isError);
-
+ virtual void appendMessage(const QString &text, OutputFormat format);
virtual void handleLink(const QString &href);
protected:
- enum Format {
- NormalMessageFormat = 0,
- ErrorMessageFormat = 1,
- StdOutFormat = 2,
- StdErrFormat = 3,
-
- NumberOfFormats = 4
- };
-
void initFormats();
void clearLastLine();
- QTextCharFormat format(Format format);
+ QTextCharFormat format(OutputFormat format) const;
static QColor mixColors(const QColor &a, const QColor &b);
out.remove(QLatin1Char('\r'));
setMaximumBlockCount(MaxBlockCount);
const bool atBottom = isScrollbarAtBottom();
- m_formatter->appendApplicationOutput(doNewlineEnfocement(out), onStdErr);
+ m_formatter->appendMessage(doNewlineEnfocement(out), onStdErr ? StdErrFormat : StdOutFormat);
if (atBottom)
scrollToBottom();
enableUndoRedo();
newline = out.indexOf(QLatin1Char('\n'));
moveCursor(QTextCursor::End);
if (newline != -1)
- m_formatter->appendApplicationOutput(out.left(newline), onStdErr); // doesn't enforce new paragraph like appendPlainText
+ m_formatter->appendMessage(out.left(newline), onStdErr ? StdErrFormat : StdOutFormat); // doesn't enforce new paragraph like appendPlainText
}
QString s = out.mid(newline+1);
m_enforceNewline = true;
s.chop(1);
}
- m_formatter->appendApplicationOutput(QLatin1Char('\n') + s, onStdErr);
+ m_formatter->appendMessage(QLatin1Char('\n') + s, onStdErr ? StdErrFormat : StdOutFormat);
}
if (atBottom)
out.remove(QLatin1Char('\r'));
setMaximumBlockCount(MaxBlockCount);
const bool atBottom = isScrollbarAtBottom();
- m_formatter->appendMessage(doNewlineEnfocement(out), isError);
+ m_formatter->appendMessage(doNewlineEnfocement(out), isError ? ErrorMessageFormat : NormalMessageFormat);
if (atBottom)
scrollToBottom();
enableUndoRedo();