From 0489d3c496c0a7d5de3d490e1da7541cd5a9d9c8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=BCrgen=20Spitzm=C3=BCller?= Date: Sun, 13 Feb 2011 09:34:10 +0000 Subject: [PATCH] Introduce new file format flag "menu=export" to define which document formats the File > Export menu should list. All other formats are available via the "More Formats & Options ..." (former "Custom ...") dialog. The actual selection of formats needs to be audited. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@37616 a592a061-630c-0410-9148-cb99ea01b6c8 --- RELEASE-NOTES | 11 ++++- lib/configure.py | 52 ++++++++++---------- lib/ui/stdmenus.inc | 2 +- src/Format.h | 6 ++- src/LyXRC.cpp | 2 + src/frontends/qt4/GuiPrefs.cpp | 7 +++ src/frontends/qt4/Menus.cpp | 2 +- src/frontends/qt4/ui/PrefFileformatsUi.ui | 60 +++++++++++++---------- 8 files changed, 87 insertions(+), 55 deletions(-) diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 1f5cee758a..a06afb54c1 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -17,7 +17,16 @@ the default print settings (which, of course, have to have been configured already). At present, not many commands can be used this way, but there will be more eventually. -Bash completion script was added to the tarball. +A bash completion script was added to the tarball. + +We have introduced a new flag to decide whether or not a given "document" +format shall be listed in the File > Export menu. This was necessary since +this menu got too large. If the flag "menu=export" is not explicitly set, +the formats are not included in the menu. This means that you might need +to click "Show in export menu" in Preferences > File Formats for your +customized file formats if you want them to appear in the menu. +Note, though, that you still can export to any possible format via +File > Export > More Formats and Options ... The following pref variables were changed in 2.0: diff --git a/lib/configure.py b/lib/configure.py index 9fd21c819f..0961d8b356 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -498,19 +498,19 @@ def checkFormatEntries(dtl_tools): \Format asciiimage asc "Plain text (image)" "" "" "%%" "" \Format asciixfig asc "Plain text (Xfig output)" "" "" "%%" "" \Format dateout tmp "date (output)" "" "" "%%" "" -\Format docbook sgml DocBook B "" "%%" "document" -\Format docbook-xml xml "Docbook (XML)" "" "" "%%" "document" +\Format docbook sgml DocBook B "" "%%" "document,menu=export" +\Format docbook-xml xml "Docbook (XML)" "" "" "%%" "document,menu=export" \Format dot dot "Graphviz Dot" "" "" "%%" "vector" -\Format platex tex "LaTeX (pLaTeX)" "" "" "%%" "document" -\Format literate nw NoWeb N "" "%%" "document" -\Format sweave Rnw "Sweave" S "" "%%" "document" +\Format platex tex "LaTeX (pLaTeX)" "" "" "%%" "document,menu=export" +\Format literate nw NoWeb N "" "%%" "document,menu=export" +\Format sweave Rnw "Sweave" S "" "%%" "document,menu=export" \Format lilypond ly "LilyPond music" "" "" "%%" "vector" \Format lilypond-book lytex "LilyPond book (LaTeX)" "" "" "%%" "document" -\Format latex tex "LaTeX (plain)" L "" "%%" "document" -\Format luatex tex "LaTeX (LuaTeX)" "" "" "%%" "document" -\Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "document" -\Format xetex tex "LaTeX (XeTeX)" "" "" "%%" "document" -\Format text txt "Plain text" a "" "%%" "document" +\Format latex tex "LaTeX (plain)" L "" "%%" "document,menu=export" +\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 text txt "Plain text" a "" "%%" "document,menu=export" \Format text2 txt "Plain text (pstotext)" "" "" "%%" "document" \Format text3 txt "Plain text (ps2ascii)" "" "" "%%" "document" \Format text4 txt "Plain text (catdvi)" "" "" "%%" "document" @@ -522,9 +522,9 @@ def checkFormatEntries(dtl_tools): \Format oocalc ods "OpenOffice spreadsheet" "" "" "%%" "document"''']) # path, xhtmlview = checkViewer('an HTML previewer', ['firefox', 'mozilla file://$$p$$i', 'netscape'], - rc_entry = [r'\Format xhtml xhtml "LyXHTML" y "%%" "" "document"']) + rc_entry = [r'\Format xhtml xhtml "LyXHTML" y "%%" "" "document,menu=export"']) if xhtmlview == "": - addToRC(r'\Format xhtml xhtml "LyXHTML" y "" "" "document"') + addToRC(r'\Format xhtml xhtml "LyXHTML" y "" "" "document,menu=export"') # checkEditor('a BibTeX editor', ['sensible-editor', 'jabref', 'JabRef', \ 'pybliographic', 'bibdesk', 'gbib', 'kbib', \ @@ -541,32 +541,32 @@ def checkFormatEntries(dtl_tools): # for xdg-open issues look here: http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg151818.html checkViewer('a PDF previewer', ['kpdf', 'okular', 'evince', 'kghostview', 'xpdf', 'acrobat', 'acroread', \ 'gv', 'ghostview'], - rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" "" "document,vector" -\Format pdf2 pdf "PDF (pdflatex)" F "%%" "" "document,vector" -\Format pdf3 pdf "PDF (dvipdfm)" m "%%" "" "document,vector" -\Format pdf4 pdf "PDF (XeTeX)" X "%%" "" "document,vector" -\Format pdf5 pdf "PDF (LuaTeX)" u "%%" "" "document,vector"''']) + rc_entry = [r'''\Format pdf pdf "PDF (ps2pdf)" P "%%" "" "document,vector,menu=export" +\Format pdf2 pdf "PDF (pdflatex)" F "%%" "" "document,vector,menu=export" +\Format pdf3 pdf "PDF (dvipdfm)" m "%%" "" "document,vector,menu=export" +\Format pdf4 pdf "PDF (XeTeX)" X "%%" "" "document,vector,menu=export" +\Format pdf5 pdf "PDF (LuaTeX)" u "%%" "" "document,vector,menu=export"''']) # checkViewer('a DVI previewer', ['xdvi', 'kdvi', 'okular', 'yap', 'dviout -Set=!m'], - rc_entry = [r'''\Format dvi dvi DVI D "%%" "" "document,vector" -\Format dvi3 dvi "DVI (LuaTeX)" V "%%" "" "document,vector"''']) + rc_entry = [r'''\Format dvi dvi DVI D "%%" "" "document,vector,menu=export" +\Format dvi3 dvi "DVI (LuaTeX)" V "%%" "" "document,vector,menu=export"''']) if dtl_tools: # Windows only: DraftDVI addToRC(r'\Format dvi2 dvi DraftDVI "" "" "" "vector"') # checkViewer('an HTML previewer', ['firefox', 'mozilla file://$$p$$i', 'netscape'], - rc_entry = [r'\Format html html HTML H "%%" "" "document"']) + rc_entry = [r'\Format html html HTML H "%%" "" "document,menu=export"']) # checkViewerEditor('Noteedit', ['noteedit'], rc_entry = [r'\Format noteedit not Noteedit "" "%%" "%%" "vector"']) # checkViewerEditor('an OpenDocument/OpenOffice viewer', ['swriter', 'oowriter', 'abiword'], - rc_entry = [r'''\Format odt odt OpenDocument "" "%%" "%%" "document,vector" + rc_entry = [r'''\Format odt odt OpenDocument "" "%%" "%%" "document,vector,menu=export" \Format sxw sxw "OpenOffice.Org (sxw)" "" "" "" "document,vector"''']) # checkViewerEditor('a Rich Text and Word viewer', ['swriter', 'oowriter', 'abiword'], - rc_entry = [r'''\Format rtf rtf "Rich Text Format" "" "%%" "%%" "document,vector" -\Format word doc "MS Word" W "%%" "%%" "document,vector"''']) + rc_entry = [r'''\Format rtf rtf "Rich Text Format" "" "%%" "%%" "document,vector,menu=export" +\Format word doc "MS Word" W "%%" "%%" "document,vector,menu=export"''']) # # entries that do not need checkProg addToRC(r'''\Format date "" "date command" "" "" "" "" @@ -576,7 +576,7 @@ def checkFormatEntries(dtl_tools): \Format lyx13x 13.lyx "LyX 1.3.x" "" "" "" "document" \Format lyx14x 14.lyx "LyX 1.4.x" "" "" "" "document" \Format lyx15x 15.lyx "LyX 1.5.x" "" "" "" "document" -\Format lyx16x 16.lyx "LyX 1.6.x" "" "" "" "document" +\Format lyx16x 16.lyx "LyX 1.6.x" "" "" "" "document,menu=export" \Format clyx cjklyx "CJK LyX 1.4.x (big5)" "" "" "" "document" \Format jlyx cjklyx "CJK LyX 1.4.x (euc-jp)" "" "" "" "document" \Format klyx cjklyx "CJK LyX 1.4.x (euc-kr)" "" "" "" "document" @@ -873,10 +873,10 @@ def checkConverterEntries(): # So, we configure the appropriate version according to the platform. cmd = r'\converter lyx %s "python -tt $$s/scripts/lyxpak.py $$r/$$i" ""' if os.name == 'nt': - addToRC(r'\Format lyxzip zip "LyX Archive (zip)" "" "" "" "document"') + addToRC(r'\Format lyxzip zip "LyX Archive (zip)" "" "" "" "document,menu=export"') addToRC(cmd % "lyxzip") else: - addToRC(r'\Format lyxgz gz "LyX Archive (tar.gz)" "" "" "" "document"') + addToRC(r'\Format lyxgz gz "LyX Archive (tar.gz)" "" "" "" "document,menu=export"') addToRC(cmd % "lyxgz") # diff --git a/lib/ui/stdmenus.inc b/lib/ui/stdmenus.inc index 38b13b59aa..41aea69f02 100644 --- a/lib/ui/stdmenus.inc +++ b/lib/ui/stdmenus.inc @@ -88,7 +88,7 @@ Menuset Menu "file_export" ExportFormats - Item "Custom...|C" "buffer-export custom" + Item "More Formats & Options...|F" "buffer-export custom" End # diff --git a/src/Format.h b/src/Format.h index 21fa27bc91..07a9c1b9f9 100644 --- a/src/Format.h +++ b/src/Format.h @@ -33,7 +33,9 @@ public: /// Some formats are both (e.g. pdf), they have this flag set. document = 1, /// Set if this format can contain vector graphics. - vector = 2 + vector = 2, + /// This format should appear in the File > Export menu + export_menu = 4 }; /// Format(std::string const & n, std::string const & e, std::string const & p, @@ -76,6 +78,8 @@ public: bool vectorFormat() const { return flags_ & vector; } /// void setFlags(int v) { flags_ = v; } + /// + bool inExportMenu() const { return flags_ & export_menu; } private: /// Internal name. Needs to be unique. std::string name_; diff --git a/src/LyXRC.cpp b/src/LyXRC.cpp index 94edf17154..185067100a 100644 --- a/src/LyXRC.cpp +++ b/src/LyXRC.cpp @@ -1090,6 +1090,8 @@ LyXRC::ReturnValues LyXRC::read(Lexer & lexrc, bool check_format) flgs |= Format::document; else if (flag == "vector") flgs |= Format::vector; + else if (flag == "menu=export") + flgs |= Format::export_menu; else LYXERR0("Ignoring unknown flag `" << flag << "' for format `" diff --git a/src/frontends/qt4/GuiPrefs.cpp b/src/frontends/qt4/GuiPrefs.cpp index a98d9f128c..18f27b1068 100644 --- a/src/frontends/qt4/GuiPrefs.cpp +++ b/src/frontends/qt4/GuiPrefs.cpp @@ -1830,6 +1830,8 @@ PrefFileformats::PrefFileformats(GuiPreferences * form) this, SLOT(setFlags())); connect(vectorCB, SIGNAL(clicked()), this, SLOT(setFlags())); + connect(exportMenuCB, SIGNAL(clicked()), + this, SLOT(setFlags())); connect(formatsCB->lineEdit(), SIGNAL(editingFinished()), this, SLOT(updatePrettyname())); connect(formatsCB->lineEdit(), SIGNAL(textEdited(QString)), @@ -1927,6 +1929,8 @@ void PrefFileformats::on_formatsCB_currentIndexChanged(int i) toqstr(l10n_shortcut(f.prettyname(), f.shortcut()))); documentCB->setChecked((f.documentFormat())); vectorCB->setChecked((f.vectorFormat())); + exportMenuCB->setChecked((f.inExportMenu())); + exportMenuCB->setEnabled((f.documentFormat())); updateViewers(); updateEditors(); } @@ -1939,7 +1943,10 @@ void PrefFileformats::setFlags() flags |= Format::document; if (vectorCB->isChecked()) flags |= Format::vector; + if (exportMenuCB->isChecked()) + flags |= Format::export_menu; currentFormat().setFlags(flags); + exportMenuCB->setEnabled(documentCB->isChecked()); changed(); } diff --git a/src/frontends/qt4/Menus.cpp b/src/frontends/qt4/Menus.cpp index ecca97a22c..598486adc3 100644 --- a/src/frontends/qt4/Menus.cpp +++ b/src/frontends/qt4/Menus.cpp @@ -1055,7 +1055,7 @@ void MenuDefinition::expandFormats(MenuItem::Kind kind, Buffer const * buf) continue; } case MenuItem::ExportFormats: - if (!(*fit)->documentFormat()) + if (!(*fit)->inExportMenu()) continue; break; default: diff --git a/src/frontends/qt4/ui/PrefFileformatsUi.ui b/src/frontends/qt4/ui/PrefFileformatsUi.ui index 77e6236870..b700fee22d 100644 --- a/src/frontends/qt4/ui/PrefFileformatsUi.ui +++ b/src/frontends/qt4/ui/PrefFileformatsUi.ui @@ -23,7 +23,7 @@ - + true @@ -61,13 +61,23 @@ + + + Check this to show the current format in the File > Export menu + + + Sho&w in export menu + + + + Vector &graphics format - + S&hort Name: @@ -77,10 +87,10 @@ - + - + E&xtension: @@ -90,43 +100,43 @@ - + - - + + - Shortc&ut: + Ed&itor: - shortcutED + editorCO - - - - - + + - Ed&itor: + Shortc&ut: - editorCO + shortcutED - + + + + QComboBox::AdjustToContents - + - + &Viewer: @@ -136,17 +146,17 @@ - + QComboBox::AdjustToContents - + - + Co&pier: @@ -156,10 +166,10 @@ - + - + Specify the default output format when using (PDF)LaTeX @@ -200,7 +210,7 @@ - + Qt::Vertical -- 2.39.2