]> git.lyx.org Git - features.git/commitdiff
Add option to view only preamble when viewing source.
authorRichard Heck <rgheck@comcast.net>
Mon, 5 Mar 2012 22:36:27 +0000 (22:36 +0000)
committerRichard Heck <rgheck@comcast.net>
Mon, 5 Mar 2012 22:36:27 +0000 (22:36 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@40862 a592a061-630c-0410-9148-cb99ea01b6c8

src/Buffer.cpp
src/Buffer.h
src/BufferList.cpp
src/frontends/qt4/GuiViewSource.cpp
src/frontends/qt4/GuiViewSource.h
src/frontends/qt4/ui/ViewSourceUi.ui
src/graphics/PreviewLoader.cpp
src/insets/InsetInclude.cpp
status.20x

index 7780fc15ab2da073c5c9e79d6fab605c1e847f20..e4e23b19e5cd0eb52a422bdb3c431297f163a00d 100644 (file)
@@ -1338,7 +1338,7 @@ bool Buffer::write(ostream & ofs) const
 bool Buffer::makeLaTeXFile(FileName const & fname,
                           string const & original_path,
                           OutputParams const & runparams_in,
-                          bool output_preamble, bool output_body) const
+                          OutputWhat output) const
 {
        OutputParams runparams = runparams_in;
 
@@ -1369,8 +1369,7 @@ bool Buffer::makeLaTeXFile(FileName const & fname,
        otexstream os(ofs, d->texrow);
        try {
                os.texrow().reset();
-               writeLaTeXSource(os, original_path,
-                     runparams, output_preamble, output_body);
+               writeLaTeXSource(os, original_path, runparams, output);
        }
        catch (EncodingException & e) {
                odocstringstream ods;
@@ -1415,7 +1414,7 @@ bool Buffer::makeLaTeXFile(FileName const & fname,
 void Buffer::writeLaTeXSource(otexstream & os,
                           string const & original_path,
                           OutputParams const & runparams_in,
-                          bool const output_preamble, bool const output_body) const
+         OutputWhat output) const
 {
        // The child documents, if any, shall be already loaded at this point.
 
@@ -1430,6 +1429,11 @@ void Buffer::writeLaTeXSource(otexstream & os,
        validate(features);
        LYXERR(Debug::LATEX, "  Buffer validation done.");
 
+       bool const output_preamble =
+               output == FullSource || output == OnlyPreamble;
+       bool const output_body =
+         output == FullSource || output == OnlyBody;
+
        // The starting paragraph of the coming rows is the
        // first paragraph of the document. (Asger)
        if (output_preamble && runparams.nice) {
@@ -1600,7 +1604,7 @@ void Buffer::writeLaTeXSource(otexstream & os,
 
 void Buffer::makeDocBookFile(FileName const & fname,
                              OutputParams const & runparams,
-                             bool const body_only) const
+                             OutputWhat output) const
 {
        LYXERR(Debug::LATEX, "makeDocBookFile...");
 
@@ -1608,7 +1612,7 @@ void Buffer::makeDocBookFile(FileName const & fname,
        if (!openFileWrite(ofs, fname))
                return;
 
-       writeDocBookSource(ofs, fname.absFileName(), runparams, body_only);
+       writeDocBookSource(ofs, fname.absFileName(), runparams, output);
 
        ofs.close();
        if (ofs.fail())
@@ -1618,7 +1622,7 @@ void Buffer::makeDocBookFile(FileName const & fname,
 
 void Buffer::writeDocBookSource(odocstream & os, string const & fname,
                             OutputParams const & runparams,
-                            bool const only_body) const
+                            OutputWhat output) const
 {
        LaTeXFeatures features(*this, params(), runparams);
        validate(features);
@@ -1628,7 +1632,12 @@ void Buffer::writeDocBookSource(odocstream & os, string const & fname,
        DocumentClass const & tclass = params().documentClass();
        string const top_element = tclass.latexname();
 
-       if (!only_body) {
+       bool const output_preamble =
+               output == FullSource || output == OnlyPreamble;
+       bool const output_body =
+         output == FullSource || output == OnlyBody;
+
+       if (output_preamble) {
                if (runparams.flavor == OutputParams::XML)
                        os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
 
@@ -1663,31 +1672,33 @@ void Buffer::writeDocBookSource(odocstream & os, string const & fname,
                os << ">\n\n";
        }
 
-       string top = top_element;
-       top += " lang=\"";
-       if (runparams.flavor == OutputParams::XML)
-               top += params().language->code();
-       else
-               top += params().language->code().substr(0, 2);
-       top += '"';
-
-       if (!params().options.empty()) {
-               top += ' ';
-               top += params().options;
-       }
-
-       os << "<!-- " << ((runparams.flavor == OutputParams::XML)? "XML" : "SGML")
-           << " file was created by LyX " << lyx_version
-           << "\n  See http://www.lyx.org/ for more information -->\n";
-
-       params().documentClass().counters().reset();
-
-       updateMacros();
+       if (output_body) {
+               string top = top_element;
+               top += " lang=\"";
+               if (runparams.flavor == OutputParams::XML)
+                       top += params().language->code();
+               else
+                       top += params().language->code().substr(0, 2);
+               top += '"';
+       
+               if (!params().options.empty()) {
+                       top += ' ';
+                       top += params().options;
+               }
+       
+               os << "<!-- " << ((runparams.flavor == OutputParams::XML)? "XML" : "SGML")
+                               << " file was created by LyX " << lyx_version
+                               << "\n  See http://www.lyx.org/ for more information -->\n";
+       
+               params().documentClass().counters().reset();
+       
+               updateMacros();
 
-       sgml::openTag(os, top);
-       os << '\n';
-       docbookParagraphs(text(), *this, os, runparams);
-       sgml::closeTag(os, top_element);
+               sgml::openTag(os, top);
+               os << '\n';
+               docbookParagraphs(text(), *this, os, runparams);
+               sgml::closeTag(os, top_element);
+       }
 }
 
 
@@ -1701,7 +1712,7 @@ void Buffer::makeLyXHTMLFile(FileName const & fname,
        if (!openFileWrite(ofs, fname))
                return;
 
-       writeLyXHTMLSource(ofs, runparams, body_only);
+       writeLyXHTMLSource(ofs, runparams, FullSource);
 
        ofs.close();
        if (ofs.fail())
@@ -1711,7 +1722,7 @@ void Buffer::makeLyXHTMLFile(FileName const & fname,
 
 void Buffer::writeLyXHTMLSource(odocstream & os,
                             OutputParams const & runparams,
-                            bool const only_body) const
+                            OutputWhat output) const
 {
        LaTeXFeatures features(*this, params(), runparams);
        validate(features);
@@ -1720,7 +1731,12 @@ void Buffer::writeLyXHTMLSource(odocstream & os,
        updateMacros();
        updateMacroInstances(OutputUpdate);
 
-       if (!only_body) {
+       bool const output_preamble =
+               output == FullSource || output == OnlyPreamble;
+       bool const output_body =
+         output == FullSource || output == OnlyBody;
+
+       if (output_preamble) {
                os << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
                   << "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN\" \"http://www.w3.org/TR/MathML2/dtd/xhtml-math11-f.dtd\">\n"
                   // FIXME Language should be set properly.
@@ -1764,14 +1780,19 @@ void Buffer::writeLyXHTMLSource(odocstream & os,
                                            << ";\n";
                                os << "}\n</style>\n";
                }
-               os << "</head>\n<body>\n";
+               os << "</head>\n";
+       }
+
+       if (output_body) {
+               os << "<body>\n";
+               XHTMLStream xs(os);
+               params().documentClass().counters().reset();
+               xhtmlParagraphs(text(), *this, xs, runparams);
+               os << "</body>\n";
        }
 
-       XHTMLStream xs(os);
-       params().documentClass().counters().reset();
-       xhtmlParagraphs(text(), *this, xs, runparams);
-       if (!only_body)
-               os << "</body>\n</html>\n";
+       if (output_preamble)
+               os << "</html>\n";
 }
 
 
@@ -3153,7 +3174,7 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to,
 
 void Buffer::getSourceCode(odocstream & os, string const format,
                           pit_type par_begin, pit_type par_end,
-                          bool full_source) const
+                          OutputWhat output) const
 {
        OutputParams runparams(&params().encoding());
        runparams.nice = true;
@@ -3162,21 +3183,7 @@ void Buffer::getSourceCode(odocstream & os, string const format,
        // No side effect of file copying and image conversion
        runparams.dryrun = true;
 
-       if (full_source) {
-               os << "% " << _("Preview source code") << "\n\n";
-               d->texrow.reset();
-               d->texrow.newline();
-               d->texrow.newline();
-               if (params().isDocBook())
-                       writeDocBookSource(os, absFileName(), runparams, false);
-               else if (runparams.flavor == OutputParams::HTML)
-                       writeLyXHTMLSource(os, runparams, false);
-               else {
-                       // latex or literate
-                       otexstream ots(os, d->texrow);
-                       writeLaTeXSource(ots, string(), runparams, true, true);
-               }
-       } else {
+       if (output == CurrentParagraph) {
                runparams.par_begin = par_begin;
                runparams.par_end = par_end;
                if (par_begin + 1 == par_end) {
@@ -3205,6 +3212,27 @@ void Buffer::getSourceCode(odocstream & os, string const format,
                        otexstream ots(os, texrow);
                        latexParagraphs(*this, text(), ots, runparams);
                }
+       } else {
+               os << "% ";
+               if (output == FullSource) 
+                       os << _("Preview source code");
+               else if (output == OnlyPreamble)
+                       os << _("Preview preamble");
+               else if (output == OnlyBody)
+                       os << _("Preview body");
+               os << "\n\n";
+               d->texrow.reset();
+               d->texrow.newline();
+               d->texrow.newline();
+               if (params().isDocBook())
+                       writeDocBookSource(os, absFileName(), runparams, output);
+               else if (runparams.flavor == OutputParams::HTML)
+                       writeLyXHTMLSource(os, runparams, output);
+               else {
+                       // latex or literate
+                       otexstream ots(os, d->texrow);
+                       writeLaTeXSource(ots, string(), runparams, output);
+               }
        }
 }
 
index 36834e77534f1a69c0f85f7f7ce2798775f486c6..4249045600a735c69e6b5483938017880e70bddf 100644 (file)
@@ -275,12 +275,18 @@ public:
        /// Fill in the ErrorList with the TeXErrors
        void bufferErrors(TeXErrors const &, ErrorList &) const;
 
+       enum OutputWhat {
+               FullSource,
+               OnlyBody,
+               OnlyPreamble,
+               CurrentParagraph
+       };
+
        /// Just a wrapper for writeLaTeXSource, first creating the ofstream.
        bool makeLaTeXFile(support::FileName const & filename,
                           std::string const & original_path,
                           OutputParams const &,
-                          bool output_preamble = true,
-                          bool output_body = true) const;
+                          OutputWhat output = FullSource) const;
        /** Export the buffer to LaTeX.
            If \p os is a file stream, and params().inputenc is "auto" or
            "default", and the buffer contains text in different languages
@@ -306,16 +312,15 @@ public:
        void writeLaTeXSource(otexstream & os,
                           std::string const & original_path,
                           OutputParams const &,
-                          bool output_preamble = true,
-                          bool output_body = true) const;
+                          OutputWhat output = FullSource) const;
        ///
        void makeDocBookFile(support::FileName const & filename,
                             OutputParams const & runparams_in,
-                            bool only_body = false) const;
+                            OutputWhat output = FullSource) const;
        ///
        void writeDocBookSource(odocstream & os, std::string const & filename,
                             OutputParams const & runparams_in,
-                            bool only_body = false) const;
+                            OutputWhat output = FullSource) const;
        ///
        void makeLyXHTMLFile(support::FileName const & filename,
                             OutputParams const & runparams_in,
@@ -323,7 +328,7 @@ public:
        ///
        void writeLyXHTMLSource(odocstream & os,
                             OutputParams const & runparams_in,
-                            bool only_body = false) const;
+                            OutputWhat output = FullSource) const;
        /// returns the main language for the buffer (document)
        Language const * language() const;
        /// get l10n translated to the buffers language
@@ -560,7 +565,7 @@ public:
        /// get source code (latex/docbook) for some paragraphs, or all paragraphs
        /// including preamble
        void getSourceCode(odocstream & os, std::string const format,
-                          pit_type par_begin, pit_type par_end, bool full_source) const;
+                          pit_type par_begin, pit_type par_end, OutputWhat output) const;
 
        /// Access to error list.
        /// This method is used only for GUI visualisation of Buffer related
index e19c8aa63d3f86523e7da5f4609fef018c28cb82..5143c1312666886941c88c782148ffde38847ce4 100644 (file)
@@ -213,7 +213,7 @@ void BufferList::updateIncludedTeXfiles(string const & masterTmpDir,
                if (!(*it)->isDepClean(masterTmpDir)) {
                        string writefile = addName(masterTmpDir, (*it)->latexName());
                        (*it)->makeLaTeXFile(FileName(writefile), masterTmpDir,
-                                            runparams, false);
+                                            runparams, Buffer::OnlyBody);
                        (*it)->markDepClean(masterTmpDir);
                }
        }
index 345bfedd44968b3644fa46b477b8304d49db6cc5..289a54a5a26e2c2ee4dc6a1c87dc01a61e3c5109 100644 (file)
@@ -49,8 +49,8 @@ ViewSourceWidget::ViewSourceWidget()
 {
        setupUi(this);
 
-       connect(viewFullSourceCB, SIGNAL(clicked()),
-               this, SLOT(fullSourceChanged()));
+       connect(contentsCO, SIGNAL(activated(int)),
+               this, SLOT(contentsChanged()));
        connect(autoUpdateCB, SIGNAL(toggled(bool)),
                updatePB, SLOT(setDisabled(bool)));
        connect(autoUpdateCB, SIGNAL(toggled(bool)),
@@ -90,7 +90,7 @@ static size_t crcCheck(docstring const & s)
        \param fullSource get full source code
        \return true if the content has changed since last call.
  */
-static bool getContent(BufferView const * view, bool fullSource,
+static bool getContent(BufferView const * view, Buffer::OutputWhat output,
                       QString & qstr, string const format, bool force_getcontent)
 {
        // get the *top* level paragraphs that contain the cursor,
@@ -108,7 +108,7 @@ static bool getContent(BufferView const * view, bool fullSource,
        if (par_begin > par_end)
                swap(par_begin, par_end);
        odocstringstream ostr;
-       view->buffer().getSourceCode(ostr, format, par_begin, par_end + 1, fullSource);
+       view->buffer().getSourceCode(ostr, format, par_begin, par_end + 1, output);
        docstring s = ostr.str();
        static size_t crc = 0;
        size_t newcrc = crcCheck(s);
@@ -129,7 +129,7 @@ void ViewSourceWidget::setBufferView(BufferView const * bv)
 }
 
 
-void ViewSourceWidget::fullSourceChanged()
+void ViewSourceWidget::contentsChanged()
 {
        if (autoUpdateCB->isChecked())
                updateView();
@@ -150,8 +150,15 @@ void ViewSourceWidget::updateView()
                outputFormatCO->currentIndex()).toString());
 
        QString content;
-       if (getContent(bv_, viewFullSourceCB->isChecked(), content,
-                 format, force_getcontent_))
+       Buffer::OutputWhat output = Buffer::CurrentParagraph;
+       if (contentsCO->currentIndex() == 1)
+               output = Buffer::FullSource;
+       else if (contentsCO->currentIndex() == 2)
+               output = Buffer::OnlyPreamble;
+       else if (contentsCO->currentIndex() == 3)
+               output = Buffer::OnlyBody;
+
+       if (getContent(bv_, output, content, format, force_getcontent_))
                document_->setPlainText(content);
 
        CursorSlice beg = bv_->cursor().selectionBegin().bottom();
@@ -254,8 +261,9 @@ void GuiViewSource::saveSession() const
 {
        Dialog::saveSession();
        QSettings settings;
-       settings.setValue(
-               sessionKey() + "/fullsource", widget_->viewFullSourceCB->isChecked());
+       // see below
+       // settings.setValue(
+       //      sessionKey() + "/output", widget_->contentsCO->currentIndex());
        settings.setValue(
                sessionKey() + "/autoupdate", widget_->autoUpdateCB->isChecked());
 }
@@ -265,9 +273,9 @@ void GuiViewSource::restoreSession()
 {
        DockView::restoreSession();
        // FIXME: Full source updating is too slow to be done at startup.
-       //widget_->viewFullSourceCB->setChecked(
-       //      settings.value(sessionKey() + "/fullsource", false).toBool());
-       widget_->viewFullSourceCB->setChecked(false);
+       //widget_->outputCO-setCurrentIndex(
+       //      settings.value(sessionKey() + "/output", false).toInt());
+       widget_->contentsCO->setCurrentIndex(0);
        QSettings settings;
        widget_->autoUpdateCB->setChecked(
                settings.value(sessionKey() + "/autoupdate", true).toBool());
index e3c7a814e5b142eb021bb1ba72f6489e9d070bea..697198301bcef9f7a1d227f09c11150eea123f77 100644 (file)
@@ -47,7 +47,7 @@ public Q_SLOTS:
        ///
        void updateDefaultFormat();
        ///
-       void fullSourceChanged();
+       void contentsChanged();
 
 private:
        ///
index 72e67364933a77d2cdade40b7255d964a9011d7f..b9708e60f9860aee0341c01a1c041603d7608063 100644 (file)
@@ -1,3 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>ViewSourceUi</class>
  <widget class="QWidget" name="ViewSourceUi">
@@ -5,15 +6,15 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>452</width>
-    <height>120</height>
+    <width>528</width>
+    <height>205</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string/>
   </property>
-  <layout class="QGridLayout" name="gridLayout_2">
-   <item row="0" column="0">
+  <layout class="QGridLayout" name="gridLayout">
+   <item row="0" column="0" rowspan="5">
     <widget class="QTextEdit" name="viewSourceTV">
      <property name="sizePolicy">
       <sizepolicy hsizetype="MinimumExpanding" vsizetype="Ignored">
     </widget>
    </item>
    <item row="0" column="1">
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="0">
-      <widget class="QLabel" name="outputFormatLA">
-       <property name="text">
-        <string>&amp;Output Format:</string>
-       </property>
-       <property name="buddy">
-        <cstring>outputFormatCO</cstring>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QComboBox" name="outputFormatCO">
-       <property name="toolTip">
-        <string>Select the output format</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0" colspan="2">
-      <widget class="QCheckBox" name="viewFullSourceCB">
-       <property name="cursor">
-        <cursorShape>ArrowCursor</cursorShape>
-       </property>
-       <property name="text">
-        <string>Complete source</string>
-       </property>
-      </widget>
+    <widget class="QLabel" name="outputFormatLA">
+     <property name="text">
+      <string>F&amp;ormat:</string>
+     </property>
+     <property name="buddy">
+      <cstring>outputFormatCO</cstring>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="2">
+    <widget class="QComboBox" name="outputFormatCO">
+     <property name="enabled">
+      <bool>true</bool>
+     </property>
+     <property name="toolTip">
+      <string>Select the output format</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1" colspan="2">
+    <widget class="QComboBox" name="contentsCO">
+     <item>
+      <property name="text">
+       <string>Current Paragraph</string>
+      </property>
      </item>
-     <item row="2" column="0" colspan="2">
-      <widget class="QCheckBox" name="autoUpdateCB">
-       <property name="text">
-        <string>Automatic update</string>
-       </property>
-       <property name="checked">
-        <bool>true</bool>
-       </property>
-      </widget>
+     <item>
+      <property name="text">
+       <string>Complete Source</string>
+      </property>
      </item>
-     <item row="3" column="0" colspan="2">
-      <widget class="QPushButton" name="updatePB">
-       <property name="enabled">
-        <bool>false</bool>
-       </property>
-       <property name="text">
-        <string>&amp;Update</string>
-       </property>
-      </widget>
+     <item>
+      <property name="text">
+       <string>Preamble Only</string>
+      </property>
      </item>
-     <item row="4" column="0">
-      <spacer>
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>17</height>
-        </size>
-       </property>
-      </spacer>
+     <item>
+      <property name="text">
+       <string>Body Only</string>
+      </property>
      </item>
-    </layout>
+    </widget>
+   </item>
+   <item row="2" column="1" colspan="2">
+    <widget class="QCheckBox" name="autoUpdateCB">
+     <property name="text">
+      <string>Automatic update</string>
+     </property>
+     <property name="checked">
+      <bool>true</bool>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="1" colspan="2">
+    <widget class="QPushButton" name="updatePB">
+     <property name="enabled">
+      <bool>false</bool>
+     </property>
+     <property name="text">
+      <string>&amp;Update</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="1" colspan="2">
+    <spacer>
+     <property name="orientation">
+      <enum>Qt::Vertical</enum>
+     </property>
+     <property name="sizeHint" stdset="0">
+      <size>
+       <width>20</width>
+       <height>85</height>
+      </size>
+     </property>
+    </spacer>
    </item>
   </layout>
  </widget>
  <tabstops>
   <tabstop>viewSourceTV</tabstop>
-  <tabstop>viewFullSourceCB</tabstop>
   <tabstop>autoUpdateCB</tabstop>
   <tabstop>updatePB</tabstop>
  </tabstops>
index 9836eeb49a58ca44f081c6293bf89b1203d38342..cc66df793517b22a7ebc1bee89fdcea85a9d1aa6 100644 (file)
@@ -710,7 +710,7 @@ void PreviewLoader::Impl::dumpPreamble(otexstream & os) const
        runparams.nice = true;
        runparams.moving_arg = true;
        runparams.free_spacing = true;
-       buffer_.writeLaTeXSource(os, buffer_.filePath(), runparams, true, false);
+       buffer_.writeLaTeXSource(os, buffer_.filePath(), runparams, Buffer::OnlyPreamble);
 
        // FIXME! This is a HACK! The proper fix is to control the 'true'
        // passed to WriteStream below:
index c5a3b0d668f032dae0e6cb1973d9802b14eef890..559baff07a8f2ab89018aa9d3f2e9ccdd4cd24c6 100644 (file)
@@ -618,7 +618,7 @@ void InsetInclude::latex(otexstream & os, OutputParams const & runparams) const
                runparams.par_begin = 0;
                runparams.par_end = tmp->paragraphs().size();
                if (!tmp->makeLaTeXFile(tmpwritefile, masterFileName(buffer()).
-                               onlyPath().absFileName(), runparams, false)) {
+                               onlyPath().absFileName(), runparams, Buffer::OnlyBody)) {
                        docstring msg = bformat(_("Included file `%1$s' "
                                        "was not exported correctly.\nWarning: "
                                        "LaTeX export is probably incomplete."),
@@ -785,7 +785,7 @@ docstring InsetInclude::xhtml(XHTMLStream & xs, OutputParams const & rp) const
        if (all_pars) {
                op.par_begin = 0;
                op.par_end = 0;
-               ibuf->writeLyXHTMLSource(xs.os(), op, true);
+               ibuf->writeLyXHTMLSource(xs.os(), op, Buffer::OnlyBody);
        } else
                xs << XHTMLStream::ESCAPE_NONE 
                   << "<!-- Included file: " 
@@ -849,7 +849,7 @@ int InsetInclude::docbook(odocstream & os, OutputParams const & runparams) const
                LYXERR(Debug::LATEX, "exportfile:" << exportfile);
                LYXERR(Debug::LATEX, "writefile:" << writefile);
 
-               tmp->makeDocBookFile(writefile, runparams, true);
+               tmp->makeDocBookFile(writefile, runparams, Buffer::OnlyBody);
        }
 
        runparams.exportdata->addExternalFile("docbook", writefile,
index 2983ca7cb02bc44289f037d57ca863c492326ff2..0e5b01513740f3457a60c7c246f7e8c677cf65c7 100644 (file)
@@ -36,6 +36,7 @@ What's new
 
 - Graphics insets show filename as a tooltip now.
 
+- New option to show only the preamble when viewing source (bug 7860).
 
 
 * DOCUMENTATION AND LOCALIZATION