mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-10 20:04:46 +00:00
Simplify the public interface of Buffer::doExport
All calls to doExport from outside of Buffer have the same algorithm to determine whether the included children parameter should be true. Moreover, this decision is only based on information from the Buffer itself. Now, Buffer only has 1 public function doExport and preview. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40041 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
cf06a12e00
commit
a7eb3c4c6e
@ -2283,10 +2283,7 @@ void Buffer::dispatch(FuncRequest const & func, DispatchResult & dr)
|
||||
break;
|
||||
}
|
||||
|
||||
bool const update_unincluded =
|
||||
params().maintain_unincluded_children
|
||||
&& !params().getIncludedChildren().empty();
|
||||
if (!doExport("dvi", true, update_unincluded)) {
|
||||
if (!doExport("dvi", true)) {
|
||||
showPrintError(absFileName());
|
||||
dr.setMessage(_("Error exporting to DVI."));
|
||||
break;
|
||||
@ -3486,6 +3483,14 @@ bool Buffer::isExporting() const
|
||||
}
|
||||
|
||||
|
||||
bool Buffer::doExport(string const & target, bool put_in_tempdir) const
|
||||
{
|
||||
bool const update_unincluded =
|
||||
params().maintain_unincluded_children
|
||||
&& !params().getIncludedChildren().empty();
|
||||
return doExport(target, put_in_tempdir, update_unincluded);
|
||||
}
|
||||
|
||||
bool Buffer::doExport(string const & target, bool put_in_tempdir,
|
||||
bool includeall, string & result_file) const
|
||||
{
|
||||
@ -3730,6 +3735,14 @@ bool Buffer::doExport(string const & target, bool put_in_tempdir,
|
||||
}
|
||||
|
||||
|
||||
bool Buffer::preview(string const & format) const
|
||||
{
|
||||
bool const update_unincluded =
|
||||
params().maintain_unincluded_children
|
||||
&& !params().getIncludedChildren().empty();
|
||||
return preview(format, update_unincluded);
|
||||
}
|
||||
|
||||
bool Buffer::preview(string const & format, bool includeall) const
|
||||
{
|
||||
MarkAsExporting exporting(this);
|
||||
|
@ -602,8 +602,12 @@ public:
|
||||
///
|
||||
bool hasGuiDelegate() const;
|
||||
|
||||
///
|
||||
bool doExport(std::string const & target, bool put_in_tempdir) const;
|
||||
///
|
||||
bool preview(std::string const & format) const;
|
||||
|
||||
|
||||
private:
|
||||
/// target is a format name optionally followed by a space
|
||||
/// and a destination file-name
|
||||
bool doExport(std::string const & target, bool put_in_tempdir,
|
||||
@ -613,6 +617,8 @@ public:
|
||||
bool includeall) const;
|
||||
///
|
||||
bool preview(std::string const & format, bool includeall = false) const;
|
||||
|
||||
public:
|
||||
/// mark the buffer as busy exporting something, or not
|
||||
void setExportStatus(bool e) const;
|
||||
///
|
||||
|
@ -404,8 +404,8 @@ public:
|
||||
Buffer const * used_buffer,
|
||||
docstring const & msg,
|
||||
docstring (*asyncFunc)(Buffer const *, Buffer *, string const &),
|
||||
bool (Buffer::*syncFunc)(string const &, bool, bool) const,
|
||||
bool (Buffer::*previewFunc)(string const &, bool) const);
|
||||
bool (Buffer::*syncFunc)(string const &, bool) const,
|
||||
bool (Buffer::*previewFunc)(string const &) const);
|
||||
|
||||
QVector<GuiWorkArea*> guiWorkAreas();
|
||||
};
|
||||
@ -3019,10 +3019,7 @@ bool GuiView::goToFileRow(string const & argument)
|
||||
template<class T>
|
||||
docstring GuiView::GuiViewPrivate::runAndDestroy(const T& func, Buffer const * orig, Buffer * buffer, string const & format, string const & msg)
|
||||
{
|
||||
bool const update_unincluded =
|
||||
buffer->params().maintain_unincluded_children
|
||||
&& !buffer->params().getIncludedChildren().empty();
|
||||
bool const success = func(format, update_unincluded);
|
||||
bool const success = func(format);
|
||||
|
||||
// the cloning operation will have produced a clone of the entire set of
|
||||
// documents, starting from the master. so we must delete those.
|
||||
@ -3042,22 +3039,22 @@ docstring GuiView::GuiViewPrivate::runAndDestroy(const T& func, Buffer const * o
|
||||
|
||||
docstring GuiView::GuiViewPrivate::compileAndDestroy(Buffer const * orig, Buffer * buffer, string const & format)
|
||||
{
|
||||
bool (Buffer::* mem_func)(std::string const &, bool, bool) const = &Buffer::doExport;
|
||||
return runAndDestroy(bind(mem_func, buffer, _1, true, _2), orig, buffer, format, "export");
|
||||
bool (Buffer::* mem_func)(std::string const &, bool) const = &Buffer::doExport;
|
||||
return runAndDestroy(bind(mem_func, buffer, _1, true), orig, buffer, format, "export");
|
||||
}
|
||||
|
||||
|
||||
docstring GuiView::GuiViewPrivate::exportAndDestroy(Buffer const * orig, Buffer * buffer, string const & format)
|
||||
{
|
||||
bool (Buffer::* mem_func)(std::string const &, bool, bool) const = &Buffer::doExport;
|
||||
return runAndDestroy(bind(mem_func, buffer, _1, false, _2), orig, buffer, format, "export");
|
||||
bool (Buffer::* mem_func)(std::string const &, bool) const = &Buffer::doExport;
|
||||
return runAndDestroy(bind(mem_func, buffer, _1, false), orig, buffer, format, "export");
|
||||
}
|
||||
|
||||
|
||||
docstring GuiView::GuiViewPrivate::previewAndDestroy(Buffer const * orig, Buffer * buffer, string const & format)
|
||||
{
|
||||
bool(Buffer::* mem_func)(std::string const &, bool) const = &Buffer::preview;
|
||||
return runAndDestroy(bind(mem_func, buffer, _1, _2), orig, buffer, format, "preview");
|
||||
bool(Buffer::* mem_func)(std::string const &) const = &Buffer::preview;
|
||||
return runAndDestroy(bind(mem_func, buffer, _1), orig, buffer, format, "preview");
|
||||
}
|
||||
|
||||
#else
|
||||
@ -3092,8 +3089,8 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
|
||||
Buffer const * used_buffer,
|
||||
docstring const & msg,
|
||||
docstring (*asyncFunc)(Buffer const *, Buffer *, string const &),
|
||||
bool (Buffer::*syncFunc)(string const &, bool, bool) const,
|
||||
bool (Buffer::*previewFunc)(string const &, bool) const)
|
||||
bool (Buffer::*syncFunc)(string const &, bool) const,
|
||||
bool (Buffer::*previewFunc)(string const &) const)
|
||||
{
|
||||
if (!used_buffer)
|
||||
return false;
|
||||
@ -3122,10 +3119,7 @@ bool GuiView::GuiViewPrivate::asyncBufferProcessing(
|
||||
#else
|
||||
if (syncFunc) {
|
||||
// TODO check here if it breaks exporting with Qt < 4.4
|
||||
bool const update_unincluded =
|
||||
used_buffer->params().maintain_unincluded_children &&
|
||||
!used_buffer->params().getIncludedChildren().empty();
|
||||
return (used_buffer->*syncFunc)(format, true, update_unincluded);
|
||||
return (used_buffer->*syncFunc)(format, true);
|
||||
} else if (previewFunc) {
|
||||
return (used_buffer->*previewFunc)(format, false);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user