commit 12c196755b708d344f113204cbc120981dccabbc
Author: Richard Heck <[email protected]>
Date: Thu Apr 19 00:09:41 2018 -0400
Fix bug #11118.
Adds LFUN_MASTER_BUFFER_EXPORT.
(cherry picked from commit c4c7053d1d1cfc0b430b6565448e5b9fcacc60be)
---
src/FuncCode.h | 1 +
src/LyXAction.cpp | 19 +++++++++++++++++++
src/frontends/qt4/GuiView.cpp | 17 +++++++++++++++++
status.23x | 3 +++
4 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/src/FuncCode.h b/src/FuncCode.h
index cce61f0..b4ac25e 100644
--- a/src/FuncCode.h
+++ b/src/FuncCode.h
@@ -478,6 +478,7 @@ enum FuncCode
LFUN_EXPORT_CANCEL, // rgh, 20171227
LFUN_BUFFER_ANONYMIZE, // sanda, 20180201
LFUN_GRAPHICS_UNIFY, // sanda, 20180207
+ LFUN_MASTER_BUFFER_EXPORT, // rkh, 20180417
LFUN_LASTACTION // end of the table
};
diff --git a/src/LyXAction.cpp b/src/LyXAction.cpp
index 8362510..9c02796 100644
--- a/src/LyXAction.cpp
+++ b/src/LyXAction.cpp
@@ -2494,6 +2494,25 @@ void LyXAction::init()
/*!
+ * \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_EXPORT
+ * \li Action: Exports the master buffer (document) to the given format.
+ * \li Syntax: master-buffer-export [<FORMAT>] [<DEST>]
+ * \li Params: <FORMAT> is one of the formats which you can find in
+ Tools->Preferences->File formats->Format.
+ Usual format you will enter is "pdf2" (pdflatex),
+ "pdflatex" (plain tex for pdflatex) or "ps" for
postscript.\n
+ Note that "custom" is not allowed in this case.\n
+ If absent or "default", then the default output format
of the
+ document is used.\n
+ <DEST> If present, this argument provides the export
destination
+ filename. Its containing folder will also be the
destination
+ folder, where all the needed external files will be
copied.
+ * \li Origin: rkh, 18 April 2018
+ * \endvar
+ */
+ { LFUN_MASTER_BUFFER_EXPORT, "master-buffer-export", ReadOnly,
Buffer },
+
+/*!
* \var lyx::FuncCode lyx::LFUN_MASTER_BUFFER_UPDATE
* \li Action: Update (export) the document built from the master buffer,
if the current buffer is part of a master/child document.
diff --git a/src/frontends/qt4/GuiView.cpp b/src/frontends/qt4/GuiView.cpp
index f20bc02..672c9f8 100644
--- a/src/frontends/qt4/GuiView.cpp
+++ b/src/frontends/qt4/GuiView.cpp
@@ -1859,6 +1859,15 @@ bool GuiView::getStatus(FuncRequest const & cmd,
FuncStatus & flag)
case LFUN_BUFFER_IMPORT:
break;
+ case LFUN_MASTER_BUFFER_EXPORT:
+ enable = doc_buffer
+ && (doc_buffer->parent() != 0
+ || doc_buffer->hasChildren())
+ && !d.processing_thread_watcher_.isRunning()
+ // this launches a dialog, which would be in the wrong
Buffer
+ && !(::lyx::operator==(cmd.argument(), "custom"));
+ break;
+
case LFUN_MASTER_BUFFER_UPDATE:
case LFUN_MASTER_BUFFER_VIEW:
enable = doc_buffer
@@ -3684,11 +3693,19 @@ void GuiView::dispatch(FuncRequest const & cmd,
DispatchResult & dr)
importDocument(to_utf8(cmd.argument()));
break;
+ case LFUN_MASTER_BUFFER_EXPORT:
+ if (doc_buffer)
+ doc_buffer = const_cast<Buffer
*>(doc_buffer->masterBuffer());
+ // fall through
case LFUN_BUFFER_EXPORT: {
if (!doc_buffer)
break;
// GCC only sees strfwd.h when building merged
if (::lyx::operator==(cmd.argument(), "custom")) {
+ // LFUN_MASTER_BUFFER_EXPORT is not enabled for
this case,
+ // so the following test should not be needed.
+ // In principle, we could try to switch to such
a view...
+ // if (cmd.action() == LFUN_BUFFER_EXPORT)
dispatch(FuncRequest(LFUN_DIALOG_SHOW,
"sendto"), dr);
break;
}
diff --git a/status.23x b/status.23x
index 65eacbb..26a71a3 100644
--- a/status.23x
+++ b/status.23x
@@ -22,6 +22,9 @@ What's new
- Support rotation of multi-page tables via (pdf)lscape (bug 9194).
+- Added LFUN_MASTER_BUFFER_EXPORT, which exports the master buffer, along
+ the lines of LFUN_MASTER_BUFFER_VIEW (bug 11118).
+
* TEX2LYX IMPROVEMENTS