Allow to hide formats from menus

Fixes: #11657
This commit is contained in:
Juergen Spitzmueller 2019-09-11 10:29:50 +02:00
parent 9a0c52ed7e
commit d76cef70a0
4 changed files with 11 additions and 2 deletions

View File

@ -676,7 +676,7 @@ def checkFormatEntries(dtl_tools):
\Format luatex tex "LaTeX (LuaTeX)" "" "" "%%" "document,menu=export" ""
\Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "document,menu=export" ""
\Format xetex tex "LaTeX (XeTeX)" "" "" "%%" "document,menu=export" ""
\Format latexclipboard tex "LaTeX (clipboard)" "" "" "%%" "" ""
\Format latexclipboard tex "LaTeX (clipboard)" "" "" "%%" "menu=none" ""
\Format text txt "Plain text" a "" "%%" "document,menu=export" "text/plain"
\Format text2 txt "Plain text (pstotext)" "" "" "%%" "document" ""
\Format text3 txt "Plain text (ps2ascii)" "" "" "%%" "document" ""

View File

@ -39,7 +39,9 @@ public:
/// This format should appear in the File > Export menu
export_menu = 4,
/// This may be a compressed file but doesn't need decompression
zipped_native = 8
zipped_native = 8,
/// This format should not appear in a menu at all
no_menu = 16
};
///
Format(std::string const & n, std::string const & e, docstring const & p,
@ -96,6 +98,8 @@ public:
///
bool inExportMenu() const { return flags_ & export_menu; }
///
bool noMenu() const { return flags_ & no_menu; }
///
bool zippedNative() const { return flags_ & zipped_native; }
///
static bool formatSorter(Format const * lhs, Format const * rhs);

View File

@ -884,6 +884,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format)
flgs |= Format::zipped_native;
else if (flag == "menu=export")
flgs |= Format::export_menu;
else if (flag == "menu=none")
flgs |= Format::no_menu;
else
LYXERR0("Ignoring unknown flag `"
<< flag << "' for format `"
@ -2521,6 +2523,7 @@ void LyXRC::write(ostream & os, bool ignore_system_lyxrc, string const & name) c
format->documentFormat() != cit->documentFormat() ||
format->vectorFormat() != cit->vectorFormat() ||
format->inExportMenu() != cit->inExportMenu() ||
format->noMenu() != cit->noMenu() ||
format->mime() != cit->mime()) {
os << "\\format \"" << cit->name() << "\" \""
<< cit->extensions() << "\" \""

View File

@ -1126,6 +1126,8 @@ void MenuDefinition::expandFormats(MenuItem::Kind const kind, Buffer const * buf
switch (kind) {
case MenuItem::ImportFormats:
if (f->noMenu())
continue;
label += from_ascii("...");
break;
case MenuItem::ViewFormats: