diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2020-03-31 14:34:08 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2020-04-07 08:13:58 +0000 |
commit | b15d1951a21e3d0f3c2f41a32f9e26b473f60ddf (patch) | |
tree | 65a49851baf637a30b3c683e8e7bfa6176567027 /src/plugins/projectexplorer/ioutputparser.h | |
parent | 45e7b78dc3a25c42f19d4275e7b678cfbd4c5771 (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.h | 20 |
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 |