Core::IDocument *DiffEditorManager::findOrCreate(const QString &vcsId, const QString &displayName)
{
    auto document = static_cast<Internal::DiffEditorDocument *>(find(vcsId));
    if (document)
        return document;

    DiffEditor *diffEditor = qobject_cast<DiffEditor *>(
                Core::EditorManager::openEditorWithContents(Constants::DIFF_EDITOR_ID, 0));
    QTC_ASSERT(diffEditor, return 0);

    document = qobject_cast<Internal::DiffEditorDocument *>(diffEditor->document());
    QTC_ASSERT(diffEditor, return 0);

    document->setPreferredDisplayName(displayName);

    m_instance->m_idToDocument.insert(vcsId, document);

    return document;
}
示例#2
0
DiffEditorDocument *DiffEditorManager::findOrCreate(const QString &documentId, const QString &displayName)
{
    DiffEditorDocument *document = find(documentId);
    if (document)
        return document;

    const QString msgWait = tr("Waiting for data...");
    DiffEditor *diffEditor = qobject_cast<DiffEditor *>(
                Core::EditorManager::openEditorWithContents(Constants::DIFF_EDITOR_ID,
                                                            0, msgWait.toUtf8()));
    QTC_ASSERT(diffEditor, return 0);

    document = qobject_cast<DiffEditorDocument *>(diffEditor->document());
    QTC_ASSERT(diffEditor, return 0);

    document->setDisplayName(displayName);

    m_instance->idToDocument.insert(documentId, document);
    m_instance->documentToId.insert(document, documentId);

    return document;
}