aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/ioutputparser.h
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-03-31 14:34:08 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-04-07 08:13:58 +0000
commitb15d1951a21e3d0f3c2f41a32f9e26b473f60ddf (patch)
tree65a49851baf637a30b3c683e8e7bfa6176567027 /src/plugins/projectexplorer/ioutputparser.h
parent45e7b78dc3a25c42f19d4275e7b678cfbd4c5771 (diff)
ProjectExplorer: Let IOutputParser handle newlines
This makes IOutputParser structurally more similar to Utils::OutputFormatter, which makes it simpler to explore possibilities of somehow uniting these two related classes. Task-number: QTCREATORBUG-22665 Change-Id: Ibb12ab6c8c785d863b9a921102a929864d0a5251 Reviewed-by: hjk <hjk@qt.io>
Diffstat (limited to 'src/plugins/projectexplorer/ioutputparser.h')
-rw-r--r--src/plugins/projectexplorer/ioutputparser.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/plugins/projectexplorer/ioutputparser.h b/src/plugins/projectexplorer/ioutputparser.h
index b27ad25a54..cbebbf49d5 100644
--- a/src/plugins/projectexplorer/ioutputparser.h
+++ b/src/plugins/projectexplorer/ioutputparser.h
@@ -38,22 +38,23 @@ class PROJECTEXPLORER_EXPORT IOutputParser : public QObject
{
Q_OBJECT
public:
- IOutputParser() = default;
+ IOutputParser();
~IOutputParser() override;
+ void handleStdout(const QString &data);
+ void handleStderr(const QString &data);
+
void appendOutputParser(IOutputParser *parser);
IOutputParser *childParser() const;
void setChildParser(IOutputParser *parser);
- virtual void stdOutput(const QString &line);
- virtual void stdError(const QString &line);
-
virtual bool hasFatalErrors() const;
void setWorkingDirectory(const Utils::FilePath &fn);
- void flush(); // flush out pending tasks
+ void flush(); // flush pending tasks & output
+ void flushTasks(); // flush pending tasks only
static QString rightTrimmed(const QString &in);
@@ -63,13 +64,16 @@ signals:
void addTask(const ProjectExplorer::Task &task, int linkedOutputLines = 0, int skipLines = 0);
protected:
- Utils::FilePath workingDirectory() const { return m_workingDir; }
+ virtual void stdOutput(const QString &line);
+ virtual void stdError(const QString &line);
+
+ Utils::FilePath workingDirectory() const;
private:
virtual void doFlush();
- IOutputParser *m_parser = nullptr;
- Utils::FilePath m_workingDir;
+ class IOutputParserPrivate;
+ IOutputParserPrivate * const d;
};
} // namespace ProjectExplorer