if (role != Qt::DisplayRole && role != Qt::EditRole)
return QVariant();
- if (index.column() == 0)
- return toqstr(list_->data(index.row()));
- else if (index.column() == 1) {
+ if (index.column() == 0) {
+ docstring const word = list_->data(index.row());
+ return toqstr(word);
+ } else if (index.column() == 1) {
// get icon from cache
QPixmap scaled;
QString const name = ":" + toqstr(list_->icon(index.row()));
}
+bool GuiCompleter::completionAvailable() const
+{
+ return popup()->model()->rowCount() > 0;
+}
+
+
bool GuiCompleter::popupVisible() const
{
return popup()->isVisible();
rect = QRect(x, y - dim.ascent() - 3, 200, dim.height() + 6);
// show/update popup
- complete(rect);
QTreeView * p = static_cast<QTreeView *>(popup());
p->setColumnWidth(0, popup()->width() - 22 - p->verticalScrollBar()->width());
+
+ complete(rect);
}
popup()->hide();
if (popup_timer_.isActive())
popup_timer_.stop();
+
+ if (!inlineVisible())
+ setModel(new GuiCompletionModel(this, 0));
}
{
gui_->bufferView().setInlineCompletion(cur, DocIterator(), docstring());
inlineVisible_ = false;
+
+ if (!popupVisible())
+ setModel(new GuiCompletionModel(this, 0));
}
}
+void GuiCompleter::hidePopup()
+{
+ Cursor cur = gui_->bufferView().cursor();
+ cur.updateFlags(Update::None);
+
+ hidePopup(cur);
+
+ // redraw if needed
+ if (cur.disp_.update())
+ gui_->bufferView().processUpdateFlags(cur.disp_.update());
+}
+
+
+void GuiCompleter::hideInline()
+{
+ Cursor cur = gui_->bufferView().cursor();
+ cur.updateFlags(Update::None);
+
+ hideInline(cur);
+
+ // redraw if needed
+ if (cur.disp_.update())
+ gui_->bufferView().processUpdateFlags(cur.disp_.update());
+}
+
+
void GuiCompleter::activate()
{
if (!popupVisible() && !inlineVisible())