this, SLOT(change_adaptor()));
connect(editPB, SIGNAL(clicked()), this, SLOT(edit()));
connect(browsePB, SIGNAL(clicked()), this, SLOT(browse()));
+ connect(embedCB, SIGNAL(toggled(bool)), this, SLOT(change_adaptor()));
connect(typeCO, SIGNAL(activated(int)), this, SLOT(change_adaptor()));
connect(typeCO, SIGNAL(activated(int)), this, SLOT(typeChanged(int)));
connect(previewCB, SIGNAL(clicked()), this, SLOT(change_adaptor()));
void GuiInclude::updateContents()
{
filenameED->setText(toqstr(params_["filename"]));
+ embedCB->setCheckState(params_["embed"] == _("true") ? Qt::Checked : Qt::Unchecked);
visiblespaceCB->setChecked(false);
visiblespaceCB->setEnabled(false);
void GuiInclude::applyView()
{
params_["filename"] = from_utf8(internal_path(fromqstr(filenameED->text())));
+ params_["embed"] = embedCB->checkState() == Qt::Checked ? _("true") : _("false");
params_.preview(previewCB->isChecked());
int const item = typeCO->currentIndex();
#include "insets/InsetListingsParams.h"
#include "support/docstream.h"
+#include "support/ExceptionMessage.h"
#include "support/FileNameList.h"
#include "support/filetools.h"
#include "support/lstrings.h" // contains
return t == INPUT || t == INCLUDE;
}
+
+FileName const masterFileName(Buffer const & buffer)
+{
+ return buffer.masterBuffer()->fileName();
+}
+
+
+void add_preview(RenderMonitoredPreview &, InsetInclude const &, Buffer const &);
+
+
+string const parentFilename(Buffer const & buffer)
+{
+ return buffer.absFileName();
+}
+
+
+EmbeddedFile const includedFilename(Buffer const & buffer,
+ InsetCommandParams const & params)
+{
+ // it is not a good idea to create this EmbeddedFile object
+ // each time, but there seems to be no easy way around.
+ EmbeddedFile file(to_utf8(params["filename"]),
+ onlyPath(parentFilename(buffer)));
+ file.setEmbed(params["embed"] == _("true") ? true : false);
+ file.enable(buffer.embeddedFiles().enabled(), &buffer);
+ return file;
+}
+
} // namespace anon
// FIXME
// This is only correct for the case of listings, but it'll do for now.
// In the other cases, this second parameter should just be empty.
- static const char * const paramnames[] = {"filename", "lstparams", ""};
- static const bool isoptional[] = {false, true};
- static const CommandInfo info = {2, paramnames, isoptional};
+ static const char * const paramnames[] = {"filename", "embed", "lstparams", ""};
+ static const bool isoptional[] = {false, false, true};
+ static const CommandInfo info = {3, paramnames, isoptional};
return &info;
}
from_utf8(par_new.getParamValue("label")),
REF_CODE);
}
+ try {
+ // test parameter
+ includedFilename(cur.buffer(), p);
+ } catch (ExceptionMessage const & message) {
+ Alert::error(message.title_, message.details_);
+ // do not set parameter if an error happens
+ break;
+ }
set(p, cur.buffer());
cur.buffer().updateBibfilesCache();
} else
}
-namespace {
-
-FileName const masterFileName(Buffer const & buffer)
-{
- return buffer.masterBuffer()->fileName();
-}
-
-
-string const parentFilename(Buffer const & buffer)
-{
- return buffer.absFileName();
-}
-
-
-FileName const includedFilename(Buffer const & buffer,
- InsetCommandParams const & params)
-{
- return makeAbsPath(to_utf8(params["filename"]),
- onlyPath(parentFilename(buffer)));
-}
-
-
-void add_preview(RenderMonitoredPreview &, InsetInclude const &, Buffer const &);
-
-} // namespace anon
-
-
void InsetInclude::set(InsetCommandParams const & p, Buffer const & buffer)
{
setParams(p);
else
temp += from_utf8(onlyFilename(to_utf8(params()["filename"])));
+ if (params()["embed"] == _("true"))
+ temp += _(" (embedded)");
return temp;
}
if (incfile.empty())
return 0;
- FileName const included_file = includedFilename(buffer, params());
+ FileName const included_file = includedFilename(buffer, params()).availableFile();
//Check we're not trying to include ourselves.
//FIXME RECURSIVE INCLUDE
Buffer const & buffer = features.buffer();
- string const included_file = includedFilename(buffer, params()).absFilename();
+ string const included_file = includedFilename(buffer, params()).availableFile().absFilename();
if (isLyXFilename(included_file))
writefile = changeExtension(included_file, ".sgml");
void InsetInclude::registerEmbeddedFiles(Buffer const & buffer,
EmbeddedFiles & files) const
{
- // include and input are temprarily not considered.
- /*
- if (isVerbatim(params()) || isListings(params()))
- files.registerFile(includedFilename(buffer, params()).absFilename(),
- false, this);
- */
+ files.registerFile(includedFilename(buffer, params()), this);
+}
+
+
+void InsetInclude::updateEmbeddedFile(Buffer const & buf,
+ EmbeddedFile const & file)
+{
+ InsetCommandParams p = params();
+ p["filename"] = from_utf8(file.outputFilename());
+ p["embedded"] = file.embedded() ? _("true") : _("false");
+ set(p, buf);
}
+
} // namespace lyx