X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2Fcontrollers%2FControlEmbeddedFiles.cpp;h=7ad8ba63b4119ba42a2ed3e50b43747f8907d6a7;hb=f3870fccc0cf07b53f21ae799aa04008a7d6ecc3;hp=d4a16359de57829d18600ae44d100d6c6f8d4f89;hpb=e4e09c4b0b9168f9c323c25b3e44e1681b9789cb;p=lyx.git diff --git a/src/frontends/controllers/ControlEmbeddedFiles.cpp b/src/frontends/controllers/ControlEmbeddedFiles.cpp index d4a16359de..7ad8ba63b4 100644 --- a/src/frontends/controllers/ControlEmbeddedFiles.cpp +++ b/src/frontends/controllers/ControlEmbeddedFiles.cpp @@ -18,20 +18,33 @@ #include "gettext.h" #include "debug.h" #include "Format.h" +#include "LyXRC.h" +#include "frontend_helpers.h" #include "frontends/LyXView.h" + +#include "support/FileFilterList.h" #include "support/convert.h" using std::string; namespace lyx { + +using support::FileFilterList; + namespace frontend { ControlEmbeddedFiles::ControlEmbeddedFiles(Dialog & parent) - : Dialog::Controller(parent), embedded_files(NULL) + : Dialog::Controller(parent) {} +EmbeddedFiles & ControlEmbeddedFiles::embeddedFiles() +{ + return kernel().buffer().embeddedFiles(); +} + + bool ControlEmbeddedFiles::initialiseParams(string const &) { return true; @@ -42,7 +55,6 @@ void ControlEmbeddedFiles::updateEmbeddedFiles() { // copy buffer embeddedFiles to a local copy kernel().buffer().embeddedFiles().update(); - embedded_files = &kernel().buffer().embeddedFiles(); } @@ -55,8 +67,11 @@ void ControlEmbeddedFiles::dispatchParams() void ControlEmbeddedFiles::goTo(EmbeddedFile const & item) { - string const tmp = convert(item.parID()); - kernel().lyxview().dispatch(FuncRequest(LFUN_PARAGRAPH_GOTO, tmp)); + int id = item.parID(); + if (id != 0) { + string const tmp = convert(item.parID()); + kernel().lyxview().dispatch(FuncRequest(LFUN_PARAGRAPH_GOTO, tmp)); + } } @@ -65,5 +80,23 @@ void ControlEmbeddedFiles::view(EmbeddedFile const & item) formats.view(kernel().buffer(), item, formats.getFormatFromFile(item)); } + +docstring const ControlEmbeddedFiles::browseFile() +{ + std::pair dir1(_("Documents|#o#O"), + lyx::from_utf8(lyxrc.document_path)); + FileFilterList const filter(_("All file (*.*)")); + return browseRelFile(docstring(), lyx::from_utf8(kernel().bufferFilepath()), + _("Select a file to embed"), + filter, false, dir1); +} + + +bool ControlEmbeddedFiles::extract(EmbeddedFile const & item) +{ + return item.extract(&kernel().buffer()); +} + + } // namespace frontend } // namespace lyx