]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/qt4/GuiView.cpp
Fix reloading of local layout file (bug #11120)
[lyx.git] / src / frontends / qt4 / GuiView.cpp
index af594cba614b882ed0de52e740c384b2196606ae..1dda3638ff675a2d6839bf46f74d0fc92d9b18d5 100644 (file)
@@ -3598,10 +3598,10 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
 #if EXPORT_in_THREAD
        if (allow_async) {
                GuiViewPrivate::busyBuffers.insert(used_buffer);
-               Buffer * cloned_buffer = used_buffer->cloneFromMaster();
+               Buffer * cloned_buffer = used_buffer->cloneWithChildren();
                if (!cloned_buffer) {
                        Alert::error(_("Export Error"),
-                                                                        _("Error cloning the Buffer."));
+                                    _("Error cloning the Buffer."));
                        return false;
                }
                QFuture<Buffer::ExportStatus> f = QtConcurrent::run(
@@ -3616,12 +3616,9 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
                // We are asynchronous, so we don't know here anything about the success
                return true;
        } else {
-#endif
-               // this will be run unconditionally in case EXPORT_in_THREAD
-               // is not defined.
                Buffer::ExportStatus status;
                if (syncFunc) {
-                       status = (used_buffer->*syncFunc)(format, true);
+                       status = (used_buffer->*syncFunc)(format, false);
                } else if (previewFunc) {
                        status = (used_buffer->*previewFunc)(format);
                } else
@@ -3630,9 +3627,19 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
                (void) asyncFunc;
                return (status == Buffer::ExportSuccess
                                || status == Buffer::PreviewSuccess);
-#if EXPORT_in_THREAD
-       // the end of the else clause in that case.
        }
+#else
+       Buffer::ExportStatus status;
+       if (syncFunc) {
+               status = (used_buffer->*syncFunc)(format, true);
+       } else if (previewFunc) {
+               status = (used_buffer->*previewFunc)(format);
+       } else
+               return false;
+       handleExportStatus(gv_, status, format);
+       (void) asyncFunc;
+       return (status == Buffer::ExportSuccess
+                       || status == Buffer::PreviewSuccess);
 #endif
 }