- if (i != 0)
- info.insertInset(0, new InsetSpecialChar(InsetSpecialChar::MENU_SEPARATOR),
- Change(Change::UNCHANGED));
- for (i = 0; i < names.top().length(); ++i)
- info.insertChar(i, names.top()[i], bp_.getFont(), false);
- names.pop();
+ if (it != beg)
+ par.insertInset(par.size(), new InsetSpecialChar(InsetSpecialChar::MENU_SEPARATOR),
+ Change(Change::UNCHANGED));
+ //FIXME: add proper underlines here. This
+ // involves rewriting searchMenu used above to
+ // return a vector of menus. If we do not do
+ // that, we might as well use below
+ // Paragraph::insert on each string (JMarc)
+ for (size_type i = 0; i != it->length(); ++i)
+ par.insertChar(par.size(), (*it)[i],
+ f, Change(Change::UNCHANGED));
+ }
+ break;
+ }
+ case ICON_INFO: {
+ FuncRequest func = lyxaction.lookupFunc(name_);
+ docstring icon_name = frontend::Application::iconName(func, true);
+ //FIXME: We should use the icon directly instead of
+ // going through FileName. The code below won't work
+ // if the icon is embedded in the executable through
+ // the Qt resource system.
+ // This is only a negligible performance problem:
+ // If the installed icon differs from the resource icon the
+ // installed one is preferred anyway, and all icons that are
+ // embedded in the resources are installed as well.
+ FileName file(to_utf8(icon_name));
+ if (!file.exists())
+ break;
+ InsetGraphics * inset = new InsetGraphics(buffer_);
+ InsetGraphicsParams igp;
+ igp.filename = file;
+ inset->setParams(igp);
+ clear();
+ paragraphs().front().insertInset(0, inset,
+ Change(Change::UNCHANGED));
+ break;
+ }
+ case BUFFER_INFO: {
+ if (name_ == "name") {
+ setText(from_utf8(buffer().fileName().onlyFileName()));
+ break;
+ }
+ if (name_ == "path") {
+ setText(from_utf8(buffer().filePath()));
+ break;
+ }
+ if (name_ == "class") {
+ setText(from_utf8(bp.documentClass().name()));
+ break;
+ }
+
+ // everything that follows is for version control.
+ // nothing that isn't version control should go below this line.
+ if (!buffer().lyxvc().inUse()) {
+ setText(_("No version control"));
+ break;