diff options
author | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-03 16:13:00 +0200 |
---|---|---|
committer | Roberto Raggi <roberto.raggi@nokia.com> | 2010-08-03 16:14:24 +0200 |
commit | baf10259a384777c1310707244d2d2739bb2ed56 (patch) | |
tree | 0f9e7416f348b8f2a27daff3cb3153e65b2d8e73 /src/plugins/texteditor/completionwidget.cpp | |
parent | ced86184fa1e10d23cc2c803cae4bff03ff443fe (diff) | |
download | qt-creator-baf10259a384777c1310707244d2d2739bb2ed56.tar.gz |
Keep the current explicitly selected item.
Done with: Thorbjørn Lindeijer
Diffstat (limited to 'src/plugins/texteditor/completionwidget.cpp')
-rw-r--r-- | src/plugins/texteditor/completionwidget.cpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/plugins/texteditor/completionwidget.cpp b/src/plugins/texteditor/completionwidget.cpp index 5b005c17b0..5a63c24c79 100644 --- a/src/plugins/texteditor/completionwidget.cpp +++ b/src/plugins/texteditor/completionwidget.cpp @@ -204,6 +204,21 @@ QChar CompletionWidget::typedChar() const return m_completionListView->m_typedChar; } +CompletionItem CompletionWidget::currentCompletionItem() const +{ + return m_completionListView->currentCompletionItem(); +} + +bool CompletionWidget::explicitlySelected() const +{ + return m_completionListView->explicitlySelected(); +} + +void CompletionWidget::setCurrentIndex(int index) +{ + m_completionListView->setCurrentIndex(m_completionListView->model()->index(index, 0)); +} + void CompletionWidget::updatePositionAndSize(int startPos) { // Determine size by calculating the space of the visible items @@ -257,7 +272,8 @@ CompletionListView::CompletionListView(CompletionSupport *support, ITextEditable m_editorWidget(editor->widget()), m_completionWidget(completionWidget), m_model(new AutoCompletionModel(this)), - m_support(support) + m_support(support), + m_explicitlySelected(false) { QTC_ASSERT(m_editorWidget, return); @@ -284,6 +300,20 @@ CompletionListView::~CompletionListView() { } +CompletionItem CompletionListView::currentCompletionItem() const +{ + int row = currentIndex().row(); + if (row >= 0 && row < m_model->rowCount()) + return m_model->itemAt(currentIndex()); + + return CompletionItem(); +} + +bool CompletionListView::explicitlySelected() const +{ + return m_explicitlySelected; +} + void CompletionListView::maybeShowInfoTip() { QModelIndex current = currentIndex(); @@ -389,6 +419,7 @@ bool CompletionListView::event(QEvent *e) return true; case Qt::Key_Up: + m_explicitlySelected = true; if (!ke->isAutoRepeat() && currentIndex().row() == 0) { setCurrentIndex(model()->index(model()->rowCount()-1, 0)); @@ -398,6 +429,7 @@ bool CompletionListView::event(QEvent *e) break; case Qt::Key_Down: + m_explicitlySelected = true; if (!ke->isAutoRepeat() && currentIndex().row() == model()->rowCount()-1) { setCurrentIndex(model()->index(0, 0)); |