Adds LFUN_MASTER_BUFFER_EXPORT.
This commit is contained in:
Richard Heck 2018-04-19 00:09:41 -04:00
parent 02e6a5ea19
commit c4c7053d1d
3 changed files with 37 additions and 0 deletions

View File

@ -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
};

View File

@ -2506,6 +2506,25 @@ void LyXAction::init()
{ LFUN_MARK_TOGGLE, "mark-toggle", ReadOnly, Edit },
/*!
* \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,

View File

@ -1865,6 +1865,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
@ -3701,11 +3710,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;
}