]> git.lyx.org Git - features.git/commitdiff
Do not show master's errors if compiling child
authorScott Kostyshak <skostysh@lyx.org>
Sat, 7 Apr 2018 21:11:33 +0000 (17:11 -0400)
committerRichard Heck <rgheck@lyx.org>
Sun, 15 Apr 2018 03:25:19 +0000 (23:25 -0400)
If a master document is compiled and has errors, and then a child is
compiled without error, the errors from the master compilation were
shown.

The setup of the relevant code is the following:

  processingThreadFinished() calls errors().  errors() makes the
  assumption that if it is called, there must have been an error
  somewhere.

The logic of the setup is the following:

  processingThreadFinished() knows whether there was an error on
  the most recent preview/export, although it doesn't know whether
  the error is from master or child (i.e. does not know whether the
  user was compiling the child, or whether master-buffer-view was
  called).  Inside error(), if there is no error in the child, it is
  assumed the error is from master.

For the above logic to work, errors() should only be called if there
was an error.

This commit fixes #11106 and preserves the fix to #7330.

(cherry picked from commit 8d2b121ef506804fe2c894a61cd4232e87254847)

src/frontends/qt4/GuiView.cpp
src/frontends/qt4/GuiView.h
status.23x

index e043bc2c554aafec6727f8f15cb5edcf3f92702e..45c26c325c4829e504ed103fdbc60da1b1449e3f 100644 (file)
@@ -725,7 +725,10 @@ void GuiView::processingThreadFinished()
                errors("Export");
                return;
        }
-       errors(d.last_export_format);
+       if (status != Buffer::ExportSuccess && status != Buffer::PreviewSuccess &&
+           status != Buffer::ExportCancel) {
+               errors(d.last_export_format);
+       }
 }
 
 
index ecf4e446c60f992072f5c36718052379d2444c2f..8ff519221842ca5f6a95de3ccd9a1b812f778b34 100644 (file)
@@ -166,6 +166,9 @@ public:
        /// \name GuiBufferDelegate.
        //@{
        void resetAutosaveTimers();
+       // shows an error list (possibly master's)
+       // even if from_master is false, might show master's error list.
+       // this function should only be called if there was an error (#11106).
        void errors(std::string const &, bool from_master = false);
        void structureChanged();
        void updateTocItem(std::string const &, DocIterator const &);
index feea3211ab4695989222c1214a3e13e2971a76e8..ef9bf91f933e9869e4a9179926a49ac547a9ae59 100644 (file)
@@ -82,6 +82,8 @@ What's new
 - When only Enchant is configured as a spell checker, configure it
   properly as default.
 
+- Do not show errors from master when compiling child (bug 11106).
+
 
 * INTERNALS