forked from qt-creator/qt-creator
TextEditor: Add methods to query the first, last and center line
... that are currently visible on the screen. Change-Id: I6c56f376f1a34a7314584df057cf03a8e5387a08 Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
This commit is contained in:
@@ -7084,6 +7084,27 @@ void TextEditorWidget::inSnippetMode(bool *active)
|
||||
*active = d->m_snippetOverlay->isVisible();
|
||||
}
|
||||
|
||||
QTextBlock TextEditorWidget::blockForVisibleRow(int row) const
|
||||
{
|
||||
const int count = rowCount();
|
||||
if (row < 0 && row >= count)
|
||||
return QTextBlock();
|
||||
|
||||
QTextBlock block = firstVisibleBlock();
|
||||
for (int i = 0; i < count; ++i) {
|
||||
if (!block.isValid() || i == row)
|
||||
return block;
|
||||
|
||||
while (block.isValid()) {
|
||||
block = block.next();
|
||||
if (block.isVisible())
|
||||
break;
|
||||
}
|
||||
}
|
||||
return QTextBlock();
|
||||
|
||||
}
|
||||
|
||||
void TextEditorWidget::invokeAssist(AssistKind kind, IAssistProvider *provider)
|
||||
{
|
||||
if (kind == QuickFix && d->m_snippetOverlay->isVisible()) {
|
||||
@@ -7213,6 +7234,33 @@ void TextEditorWidget::configureGenericHighlighter()
|
||||
updateEditorInfoBar(this);
|
||||
}
|
||||
|
||||
int TextEditorWidget::lineForVisibleRow(int row) const
|
||||
{
|
||||
QTextBlock block = blockForVisibleRow(row);
|
||||
return block.isValid() ? block.blockNumber() : -1;
|
||||
}
|
||||
|
||||
int TextEditorWidget::firstVisibleLine() const
|
||||
{
|
||||
return lineForVisibleRow(0);
|
||||
}
|
||||
|
||||
int TextEditorWidget::lastVisibleLine() const
|
||||
{
|
||||
QTextBlock block = blockForVisibleRow(rowCount() - 1);
|
||||
if (!block.isValid())
|
||||
block.previous();
|
||||
return block.isValid() ? block.blockNumber() : -1;
|
||||
}
|
||||
|
||||
int TextEditorWidget::centerVisibleLine() const
|
||||
{
|
||||
QTextBlock block = blockForVisibleRow(rowCount() / 2);
|
||||
if (!block.isValid())
|
||||
block.previous();
|
||||
return block.isValid() ? block.blockNumber() : -1;
|
||||
}
|
||||
|
||||
bool TextEditorWidget::isMissingSyntaxDefinition() const
|
||||
{
|
||||
return d->m_isMissingSyntaxDefinition;
|
||||
|
||||
Reference in New Issue
Block a user