diff options
Diffstat (limited to 'src/plugins/projectexplorer/appoutputpane.cpp')
-rw-r--r-- | src/plugins/projectexplorer/appoutputpane.cpp | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/src/plugins/projectexplorer/appoutputpane.cpp b/src/plugins/projectexplorer/appoutputpane.cpp index 42975294b3..320cd5ac6e 100644 --- a/src/plugins/projectexplorer/appoutputpane.cpp +++ b/src/plugins/projectexplorer/appoutputpane.cpp @@ -60,6 +60,7 @@ #include <QSpinBox> #include <QTabBar> #include <QTabWidget> +#include <QTimer> #include <QToolButton> #include <QVBoxLayout> @@ -83,15 +84,6 @@ static QString msgAttachDebuggerTooltip(const QString &handleDescription = QStri AppOutputPane::tr("Attach debugger to %1").arg(handleDescription); } -static void replaceAllChildWidgets(QLayout *layout, const QList<QWidget *> &newChildren) -{ - while (QLayoutItem *child = layout->takeAt(0)) - delete child; - - for (QWidget *widget : newChildren) - layout->addWidget(widget); -} - namespace { const char SETTINGS_KEY[] = "ProjectExplorer/AppOutput/Zoom"; const char C_APP_OUTPUT[] = "ProjectExplorer.ApplicationOutput"; @@ -163,7 +155,7 @@ AppOutputPane::RunControlTab::RunControlTab(RunControl *runControl, Core::Output runControl(runControl), window(w) { if (runControl && w) - w->setFormatter(runControl->outputFormatter()); + w->setLineParsers(runControl->createOutputParsers()); } AppOutputPane::AppOutputPane() : @@ -413,7 +405,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) if (tab.runControl) tab.runControl->initiateFinish(); tab.runControl = rc; - tab.window->setFormatter(rc->outputFormatter()); + tab.window->setLineParsers(rc->createOutputParsers()); handleOldOutput(tab.window); @@ -427,7 +419,7 @@ void AppOutputPane::createNewOutputWindow(RunControl *rc) } // Create new static int counter = 0; - Core::Id contextId = Core::Id(C_APP_OUTPUT).withSuffix(counter++); + Utils::Id contextId = Utils::Id(C_APP_OUTPUT).withSuffix(counter++); Core::Context context(contextId); Core::OutputWindow *ow = new Core::OutputWindow(context, SETTINGS_KEY, m_tabWidget); ow->setWindowTitle(tr("Application Output Window")); @@ -700,10 +692,6 @@ void AppOutputPane::enableButtons(const RunControl *rc) m_attachButton->setToolTip(msgAttachDebuggerTooltip()); } setZoomButtonsEnabled(true); - - replaceAllChildWidgets(m_formatterWidget->layout(), rc->outputFormatter() ? - rc->outputFormatter()->toolbarWidgets() : - QList<QWidget *>()); } else { m_reRunButton->setEnabled(false); m_reRunButton->setIcon(Utils::Icons::RUN_SMALL_TOOLBAR.icon()); @@ -756,8 +744,12 @@ void AppOutputPane::slotRunControlFinished() { auto *rc = qobject_cast<RunControl *>(sender()); QTimer::singleShot(0, this, [this, rc]() { slotRunControlFinished2(rc); }); - if (rc->outputFormatter()) - rc->outputFormatter()->flush(); + for (const RunControlTab &t : m_runControlTabs) { + if (t.runControl == rc) { + t.window->flush(); + break; + } + } } void AppOutputPane::slotRunControlFinished2(RunControl *sender) |