aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-04-15 09:31:51 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-04-15 09:07:17 +0000
commitd42920d372dea4bec69f8d4da67e25bce5b7c6a6 (patch)
treeea8fbe0c212bed930ffa1009701b269cd6e6015c /src/libs
parentc1dc36011fed69937c1a6b70d6811ea9542acc88 (diff)
OutputFormatter: Take ownership of the line parsers
For symmetry with IOutputParser. Task-number: QTCREATORBUG-22665 Change-Id: I92e93b32e87ff4f3fa163a2d2fe13768e56bfa24 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/utils/outputformatter.cpp3
-rw-r--r--src/libs/utils/outputformatter.h2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/libs/utils/outputformatter.cpp b/src/libs/utils/outputformatter.cpp
index dbc7e0a677..dd243bb9bc 100644
--- a/src/libs/utils/outputformatter.cpp
+++ b/src/libs/utils/outputformatter.cpp
@@ -67,6 +67,7 @@ OutputFormatter::OutputFormatter()
OutputFormatter::~OutputFormatter()
{
+ qDeleteAll(d->lineParsers);
delete d;
}
@@ -85,6 +86,8 @@ void OutputFormatter::setPlainTextEdit(QPlainTextEdit *plainText)
void OutputFormatter::setLineParsers(const QList<OutputLineParser *> &parsers)
{
+ flush();
+ qDeleteAll(d->lineParsers);
d->lineParsers = parsers;
d->nextParser = nullptr;
}
diff --git a/src/libs/utils/outputformatter.h b/src/libs/utils/outputformatter.h
index cdb757786e..edee0ef0b6 100644
--- a/src/libs/utils/outputformatter.h
+++ b/src/libs/utils/outputformatter.h
@@ -86,7 +86,7 @@ public:
QPlainTextEdit *plainTextEdit() const;
void setPlainTextEdit(QPlainTextEdit *plainText);
- void setLineParsers(const QList<OutputLineParser *> &parsers);
+ void setLineParsers(const QList<OutputLineParser *> &parsers); // Takes ownership
void appendMessage(const QString &text, OutputFormat format);
void flush();