void OutputJob::startOutput() { IPlugin* i = ICore::self()->pluginController()->pluginForExtension(QStringLiteral("org.kdevelop.IOutputView")); if( i ) { KDevelop::IOutputView* view = i->extension<KDevelop::IOutputView>(); if( view ) { int tvid; if (m_standardToolView != -1) { tvid = view->standardToolView( static_cast<IOutputView::StandardToolView>(m_standardToolView) ); } else { tvid = view->registerToolView(m_toolTitle, m_type, m_toolIcon); } if (m_title.isEmpty()) m_title = objectName(); m_outputId = view->registerOutputInToolView( tvid, m_title, m_behaviours ); if (!m_outputModel) { m_outputModel = new QStandardItemModel(0); } // Keep the item model around after the job is gone view->setModel(m_outputId, m_outputModel); if (!m_outputDelegate) { m_outputDelegate = new QItemDelegate(0); } view->setDelegate(m_outputId, m_outputDelegate); if (m_killJobOnOutputClose) { // can't use qt5 signal slot syntax here, IOutputView is no a QObject connect(i, SIGNAL(outputRemoved(int,int)), this, SLOT(outputViewRemoved(int,int))); } if (m_verbosity == OutputJob::Verbose) view->raiseOutput(m_outputId); } } }
void SvnJobBase::outputMessage(const QString& message) { if (!model()) return; if (verbosity() == KDevelop::OutputJob::Silent) return; QStandardItemModel *m = qobject_cast<QStandardItemModel*>(model()); QStandardItem *previous = m->item(m->rowCount()-1); if (message == "." && previous && previous->text().contains(QRegExp("\\.+"))) previous->setText(previous->text() + message); else m->appendRow(new QStandardItem(message)); KDevelop::IPlugin* i = KDevelop::ICore::self()->pluginController()->pluginForExtension("org.kdevelop.IOutputView"); if( i ) { KDevelop::IOutputView* view = i->extension<KDevelop::IOutputView>(); if( view ) { view->raiseOutput( outputId() ); } } }