void QmlJSOutlineWidget::updateTextCursor(const QModelIndex &index) { QModelIndex sourceIndex = m_filterModel->mapToSource(index); AST::SourceLocation location = m_editor->outlineModel()->sourceLocation(sourceIndex); if (!location.isValid()) return; const QTextBlock lastBlock = m_editor->document()->lastBlock(); const uint textLength = lastBlock.position() + lastBlock.length(); if (location.offset >= textLength) return; Core::EditorManager *editorManager = Core::EditorManager::instance(); editorManager->cutForwardNavigationHistory(); editorManager->addCurrentPositionToNavigationHistory(); QTextCursor textCursor = m_editor->textCursor(); m_blockCursorSync = true; textCursor.setPosition(location.offset); m_editor->setTextCursor(textCursor); m_editor->centerCursor(); m_editor->setFocus(); m_blockCursorSync = false; }
void VCSBaseEditor::slotDiffBrowse(int index) { // goto diffed file as indicated by index/line number if (index < 0 || index >= d->m_diffSections.size()) return; const int lineNumber = d->m_diffSections.at(index); Core::EditorManager *editorManager = Core::EditorManager::instance(); editorManager->addCurrentPositionToNavigationHistory(); gotoLine(lineNumber + 1, 0); // TextEdit uses 1..n convention }
void LineNumberFilter::accept(FilterEntry selection) const { ITextEditor *editor = currentTextEditor(); if (editor) { Core::EditorManager *editorManager = Core::EditorManager::instance(); editorManager->addCurrentPositionToNavigationHistory(); editor->gotoLine(selection.internalData.toInt()); editor->widget()->setFocus(); Core::ModeManager::instance()->activateModeType(Core::Constants::MODE_EDIT_TYPE); } }
void LineNumberFilter::accept(FilterEntry selection) const { ITextEditor *editor = currentTextEditor(); if (editor) { Core::EditorManager *editorManager = Core::EditorManager::instance(); editorManager->addCurrentPositionToNavigationHistory(); LineColumn data = selection.internalData.value<LineColumn>(); if (data.first < 1) { // jump to column in same line int currLine, currColumn; editor->convertPosition(editor->position(), &currLine, &currColumn); data.first = currLine; } editor->gotoLine(data.first, data.second); editor->widget()->setFocus(); Core::ModeManager::activateModeType(Id(Core::Constants::MODE_EDIT_TYPE)); } }
void QmlProfilerTool::gotoSourceLocation(const QString &fileUrl, int lineNumber) { if (lineNumber < 0 || fileUrl.isEmpty()) return; #if 0 const QString fileName = QUrl(fileUrl).toLocalFile(); const QString projectFileName = d->m_projectFinder.findFile(fileName); Core::EditorManager *editorManager = Core::EditorManager::instance(); Core::IEditor *editor = editorManager->openEditor(projectFileName); TextEditor::ITextEditor *textEditor = qobject_cast<TextEditor::ITextEditor*>(editor); if (textEditor) { editorManager->addCurrentPositionToNavigationHistory(); textEditor->gotoLine(lineNumber); textEditor->widget()->setFocus(); } #endif }
void CppOutlineWidget::updateTextCursor(const QModelIndex &proxyIndex) { QModelIndex index = m_proxyModel->mapToSource(proxyIndex); CPlusPlus::Symbol *symbol = m_model->symbolFromIndex(index); if (symbol) { m_blockCursorSync = true; if (debug) qDebug() << "CppOutline - moving cursor to" << symbol->line() << symbol->column() - 1; Core::EditorManager *editorManager = Core::EditorManager::instance(); editorManager->cutForwardNavigationHistory(); editorManager->addCurrentPositionToNavigationHistory(); // line has to be 1 based, column 0 based! m_editor->gotoLine(symbol->line(), symbol->column() - 1); m_editor->setFocus(); m_blockCursorSync = false; } }