X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fqt%2FGuiCommandBuffer.cpp;h=ee68013e2f91aa4a546be8e302f5ca82904ce999;hb=89394bcd0f3b5079a066d8c3f6f7a5e606073db3;hp=4d28bfb0c29e73db1b6e69c70921368c7bea85f3;hpb=fad170be1a6913403f200815be112a38ea9b857f;p=features.git diff --git a/src/frontends/qt/GuiCommandBuffer.cpp b/src/frontends/qt/GuiCommandBuffer.cpp index 4d28bfb0c2..ee68013e2f 100644 --- a/src/frontends/qt/GuiCommandBuffer.cpp +++ b/src/frontends/qt/GuiCommandBuffer.cpp @@ -184,9 +184,12 @@ void GuiCommandBuffer::complete() string new_input; vector const & comp = completions(input, new_input); - if (comp.empty()) { + if (comp.empty() || comp.size() == 1) { if (new_input != input) edit_->setText(toqstr(new_input)); + // If there is only one match, indicate this by adding a space + if (comp.size() == 1) + edit_->setText(edit_->text() + " "); return; } @@ -208,6 +211,8 @@ void GuiCommandBuffer::showList(vector const & list, else listBox->addItem(toqstr(item)); } + // Select the first item + listBox->setCurrentItem(listBox->item(0)); listBox->resize(listBox->sizeHint()); @@ -296,6 +301,11 @@ GuiCommandBuffer::completions(string const & prefix, string & new_prefix) if (prefixIs(act.first, prefix)) comp.push_back(act.first); } + // now add all the other items that contain the prefix + for (auto const & act : lyxaction) { + if (!prefixIs(act.first, prefix) && contains(act.first, prefix)) + comp.push_back(act.first); + } if (comp.empty()) { new_prefix = prefix; @@ -304,7 +314,7 @@ GuiCommandBuffer::completions(string const & prefix, string & new_prefix) if (comp.size() == 1) { new_prefix = comp[0]; - return vector(); + return comp; } // find maximal available prefix