+ case ICON_INFO: {
+ FuncRequest func = lyxaction.lookupFunc(name_);
+ docstring icon_name = theApp()->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.
+ 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;
+ }
+ LyXVC::RevisionInfo itype = LyXVC::Unknown;
+ if (name_ == "vcs-revision")
+ itype = LyXVC::File;
+ else if (name_ == "vcs-tree-revision")
+ itype = LyXVC::Tree;
+ else if (name_ == "vcs-author")
+ itype = LyXVC::Author;
+ else if (name_ == "vcs-time")
+ itype = LyXVC::Time;
+ else if (name_ == "vcs-date")
+ itype = LyXVC::Date;
+ string binfo = buffer().lyxvc().revisionInfo(itype);
+ if (binfo.empty())
+ setText(bformat(_("%1$s unknown"), from_ascii(name_)));
+ else
+ setText(from_utf8(binfo));
+ break;
+ }
+ case LYX_INFO:
+ if (name_ == "version")
+ setText(from_ascii(PACKAGE_VERSION));
+ break;