+ case TO_EXPORTFORMATS:
+ case TO_IMPORTFORMATS:
+ case TO_UPDATEFORMATS:
+ case TO_VIEWFORMATS: {
+ vector<Format const *> formats = (code == TO_IMPORTFORMATS) ?
+ theConverters().importableFormats() :
+ theConverters().exportableFormats(code != TO_EXPORTFORMATS);
+ sort(formats.begin(), formats.end());
+ vector<Format const *>::const_iterator fit = formats.begin();
+ vector<Format const *>::const_iterator end = formats.end();
+ for (; fit != end ; ++fit) {
+ if ((*fit)->dummy())
+ continue;
+ if (code != TO_IMPORTFORMATS &&
+ !(*fit)->documentFormat())
+ continue;
+
+ docstring const prettyname =
+ from_utf8((*fit)->prettyname());
+ docstring tooltip;
+ FuncCode lfun = LFUN_NOACTION;
+ switch (code) {
+ case TO_EXPORTFORMATS:
+ lfun = LFUN_BUFFER_EXPORT;
+ tooltip = _("Export %1$s");
+ break;
+ case TO_IMPORTFORMATS:
+ lfun = LFUN_BUFFER_IMPORT;
+ tooltip = _("Import %1$s");
+ break;
+ case TO_UPDATEFORMATS:
+ lfun = LFUN_BUFFER_UPDATE;
+ tooltip = _("Update %1$s");
+ break;
+ case TO_VIEWFORMATS:
+ lfun = LFUN_BUFFER_VIEW;
+ tooltip = _("View %1$s");
+ break;
+ }
+ FuncRequest func(lfun, (*fit)->name(),
+ FuncRequest::TOOLBAR);
+ add(ToolbarItem(ToolbarItem::COMMAND, func,
+ bformat(tooltip, prettyname)));
+ }
+ break;
+ }
+