diff options
Diffstat (limited to 'src/plugins/coreplugin/outputwindow.cpp')
-rw-r--r-- | src/plugins/coreplugin/outputwindow.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/plugins/coreplugin/outputwindow.cpp b/src/plugins/coreplugin/outputwindow.cpp index 91504ff1a16..b27b91afc03 100644 --- a/src/plugins/coreplugin/outputwindow.cpp +++ b/src/plugins/coreplugin/outputwindow.cpp @@ -26,6 +26,7 @@ #include "outputwindow.h" #include "actionmanager/actionmanager.h" +#include "editormanager/editormanager.h" #include "coreconstants.h" #include "coreplugin.h" #include "icore.h" @@ -138,6 +139,11 @@ OutputWindow::OutputWindow(Context context, const QString &settingsKey, QWidget Core::ICore::settings()->setValue(d->settingsKey, fontZoom()); }); + connect(outputFormatter(), &OutputFormatter::openInEditorRequested, this, + [](const Utils::FilePath &fp, int line, int column) { + EditorManager::openEditorAt(fp.toString(), line, column); + }); + undoAction->setEnabled(false); redoAction->setEnabled(false); cutAction->setEnabled(false); @@ -528,12 +534,10 @@ private: return Status::NotHandled; } - void reset() override { m_handling = false; } - bool m_handling = false; }; -// Handles all lines starting with "B". No continuation logic +// Handles all lines starting with "B". No continuation logic. class TestFormatterB : public OutputLineParser { private: @@ -571,18 +575,17 @@ void Internal::CorePlugin::testOutputFormatter() " A trick\n" " embedded carriage return\n" "handled by B\n"; - OutputFormatter formatter; - QPlainTextEdit textEdit; - formatter.setPlainTextEdit(&textEdit); - formatter.setLineParsers({new TestFormatterB, new TestFormatterA}); // Stress-test the implementation by providing the input in chunks, splitting at all possible // offsets. for (int i = 0; i < input.length(); ++i) { - formatter.appendMessage(input.left(i), NormalMessageFormat); - formatter.appendMessage(input.mid(i), NormalMessageFormat); + OutputFormatter formatter; + QPlainTextEdit textEdit; + formatter.setPlainTextEdit(&textEdit); + formatter.setLineParsers({new TestFormatterB, new TestFormatterA}); + formatter.appendMessage(input.left(i), StdOutFormat); + formatter.appendMessage(input.mid(i), StdOutFormat); QCOMPARE(textEdit.toPlainText(), output); - formatter.clear(); } } #endif // WITH_TESTS |