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 &gt; Export menu</string>
+     </property>
+     <property name="text">
+      <string>Sho&amp;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 &amp;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&amp;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&amp;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&amp;ut:</string>
+      <string>Ed&amp;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&amp;itor:</string>
+      <string>Shortc&amp;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>&amp;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&amp;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
 
 #

Reply via email to