Jürgen Spitzmüller wrote: > We could also merge the uiflags into the flags, but I feel that the two > should be separated internally.
After thinking a bit more, I think it's OK to use flags_ for all. The patch is now really small. I'll commit the attached if I get no objections. Jürgen
Index: src/Format.h =================================================================== --- src/Format.h (Revision 37596) +++ src/Format.h (Arbeitskopie) @@ -33,7 +33,9 @@ /// 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 @@ 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_; Index: src/frontends/qt4/GuiPrefs.cpp =================================================================== --- src/frontends/qt4/GuiPrefs.cpp (Revision 37596) +++ src/frontends/qt4/GuiPrefs.cpp (Arbeitskopie) @@ -1830,6 +1830,8 @@ 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 @@ 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 @@ flags |= Format::document; if (vectorCB->isChecked()) flags |= Format::vector; + if (exportMenuCB->isChecked()) + flags |= Format::export_menu; currentFormat().setFlags(flags); + exportMenuCB->setEnabled(documentCB->isChecked()); changed(); } Index: src/frontends/qt4/ui/PrefFileformatsUi.ui =================================================================== --- src/frontends/qt4/ui/PrefFileformatsUi.ui (Revision 37596) +++ src/frontends/qt4/ui/PrefFileformatsUi.ui (Arbeitskopie) @@ -23,7 +23,7 @@ </property> </widget> </item> - <item row="0" column="1" colspan="2"> + <item row="0" column="1"> <widget class="QComboBox" name="formatsCB"> <property name="editable"> <bool>true</bool> @@ -61,13 +61,23 @@ </widget> </item> <item row="2" column="1" colspan="2"> + <widget class="QCheckBox" name="exportMenuCB"> + <property name="toolTip"> + <string>Check this to show the current format in the File > Export menu</string> + </property> + <property name="text"> + <string>Sho&w in export menu</string> + </property> + </widget> + </item> + <item row="3" column="1" colspan="2"> <widget class="QCheckBox" name="vectorCB"> <property name="text"> <string>Vector &graphics format</string> </property> </widget> </item> - <item row="3" column="0"> + <item row="4" column="0"> <widget class="QLabel" name="formatLA"> <property name="text"> <string>S&hort Name:</string> @@ -77,10 +87,10 @@ </property> </widget> </item> - <item row="3" column="1" colspan="2"> + <item row="4" column="1" colspan="2"> <widget class="QLineEdit" name="formatED"/> </item> - <item row="4" column="0"> + <item row="5" column="0"> <widget class="QLabel" name="extensionLA"> <property name="text"> <string>E&xtension:</string> @@ -90,43 +100,43 @@ </property> </widget> </item> - <item row="4" column="1" colspan="2"> + <item row="5" column="1" colspan="2"> <widget class="QLineEdit" name="extensionED"/> </item> - <item row="5" column="0"> - <widget class="QLabel" name="shortcutLA"> + <item row="6" column="0"> + <widget class="QLabel" name="editorLA"> <property name="text"> - <string>Shortc&ut:</string> + <string>Ed&itor:</string> </property> <property name="buddy"> - <cstring>shortcutED</cstring> + <cstring>editorCO</cstring> </property> </widget> </item> - <item row="5" column="1" colspan="2"> - <widget class="QLineEdit" name="shortcutED"/> - </item> - <item row="6" column="0"> - <widget class="QLabel" name="editorLA"> + <item row="7" column="0"> + <widget class="QLabel" name="shortcutLA"> <property name="text"> - <string>Ed&itor:</string> + <string>Shortc&ut:</string> </property> <property name="buddy"> - <cstring>editorCO</cstring> + <cstring>shortcutED</cstring> </property> </widget> </item> - <item row="6" column="1"> + <item row="7" column="1" colspan="2"> + <widget class="QLineEdit" name="shortcutED"/> + </item> + <item row="8" column="1"> <widget class="QComboBox" name="editorCO"> <property name="sizeAdjustPolicy"> <enum>QComboBox::AdjustToContents</enum> </property> </widget> </item> - <item row="6" column="2" colspan="2"> + <item row="8" column="2" colspan="2"> <widget class="QLineEdit" name="editorED"/> </item> - <item row="7" column="0"> + <item row="9" column="0"> <widget class="QLabel" name="viewerLA"> <property name="text"> <string>&Viewer:</string> @@ -136,17 +146,17 @@ </property> </widget> </item> - <item row="7" column="1"> + <item row="9" column="1"> <widget class="QComboBox" name="viewerCO"> <property name="sizeAdjustPolicy"> <enum>QComboBox::AdjustToContents</enum> </property> </widget> </item> - <item row="7" column="2" colspan="2"> + <item row="9" column="2" colspan="2"> <widget class="QLineEdit" name="viewerED"/> </item> - <item row="8" column="0"> + <item row="10" column="0"> <widget class="QLabel" name="label"> <property name="text"> <string>Co&pier:</string> @@ -156,10 +166,10 @@ </property> </widget> </item> - <item row="8" column="1" colspan="2"> + <item row="10" column="1" colspan="2"> <widget class="QLineEdit" name="copierED"/> </item> - <item row="9" column="0" colspan="5"> + <item row="11" column="0" colspan="5"> <widget class="QGroupBox" name="defaultFormatGB"> <property name="toolTip"> <string>Specify the default output format when using (PDF)LaTeX</string> @@ -200,7 +210,7 @@ </layout> </widget> </item> - <item row="10" column="1" colspan="2"> + <item row="12" column="1" colspan="2"> <spacer> <property name="orientation"> <enum>Qt::Vertical</enum> Index: src/frontends/qt4/Menus.cpp =================================================================== --- src/frontends/qt4/Menus.cpp (Revision 37596) +++ src/frontends/qt4/Menus.cpp (Arbeitskopie) @@ -1055,7 +1055,7 @@ continue; } case MenuItem::ExportFormats: - if (!(*fit)->documentFormat()) + if (!(*fit)->inExportMenu()) continue; break; default: Index: src/LyXRC.cpp =================================================================== --- src/LyXRC.cpp (Revision 37596) +++ src/LyXRC.cpp (Arbeitskopie) @@ -1090,6 +1090,8 @@ 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 `" Index: lib/configure.py =================================================================== --- lib/configure.py (Revision 37596) +++ lib/configure.py (Arbeitskopie) @@ -498,19 +498,19 @@ \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 @@ \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 @@ # 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 @@ \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 @@ # 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") # Index: lib/ui/stdmenus.inc =================================================================== --- lib/ui/stdmenus.inc (Revision 37596) +++ lib/ui/stdmenus.inc (Arbeitskopie) @@ -88,7 +88,7 @@ Menu "file_export" ExportFormats - Item "Custom...|C" "buffer-export custom" + Item "More Formats & Options...|M" "buffer-export custom" End #