diff --git a/plugins/standardoutputview/outputwidget.cpp b/plugins/standardoutputview/outputwidget.cpp --- a/plugins/standardoutputview/outputwidget.cpp +++ b/plugins/standardoutputview/outputwidget.cpp @@ -474,7 +474,7 @@ QTreeView* OutputWidget::createListView(int id) { - auto createHelper = [&]() -> QTreeView* { + auto createHelper = [&]() -> QSharedPointer { KDevelop::FocusedTreeView* listview = new KDevelop::FocusedTreeView(this); listview->setEditTriggers( QAbstractItemView::NoEditTriggers ); listview->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); //Always enable the scrollbar, so it doesn't flash around @@ -490,10 +490,10 @@ connect(listview, &QTreeView::activated, this, &OutputWidget::activate); connect(listview, &QTreeView::clicked, this, &OutputWidget::activate); - return listview; + return QSharedPointer(listview); }; - QTreeView* listview = nullptr; + QSharedPointer listview; if( !m_views.contains(id) ) { bool newView = true; @@ -505,38 +505,37 @@ if( data->type & KDevelop::IOutputView::MultipleView ) { - m_tabwidget->addTab( listview, data->outputdata.value(id)->title ); + m_tabwidget->addTab(listview.data(), data->outputdata.value(id)->title); } else { - m_stackwidget->addWidget( listview ); - m_stackwidget->setCurrentWidget( listview ); + m_stackwidget->addWidget(listview.data()); + m_stackwidget->setCurrentWidget(listview.data()); } } else { if( m_views.isEmpty() ) { listview = createHelper(); - - layout()->addWidget( listview ); + layout()->addWidget(listview.data()); } else { - listview = m_views.begin().value().view.data(); + listview = m_views.begin().value().view; newView = false; } } - m_views[id].view = QSharedPointer(listview); + m_views[id].view = listview; changeModel( id ); changeDelegate( id ); if (newView) listview->scrollToBottom(); } else { - listview = m_views.value(id).view.data(); + listview = m_views.value(id).view; } enableActions(); - return listview; + return listview.data(); } void OutputWidget::raiseOutput(int id)