summaryrefslogtreecommitdiff
path: root/src/plugins/texteditor/completionwidget.cpp
diff options
context:
space:
mode:
authorRoberto Raggi <roberto.raggi@nokia.com>2010-08-03 16:13:00 +0200
committerRoberto Raggi <roberto.raggi@nokia.com>2010-08-03 16:14:24 +0200
commitbaf10259a384777c1310707244d2d2739bb2ed56 (patch)
tree0f9e7416f348b8f2a27daff3cb3153e65b2d8e73 /src/plugins/texteditor/completionwidget.cpp
parentced86184fa1e10d23cc2c803cae4bff03ff443fe (diff)
downloadqt-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.cpp34
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));