]> git.lyx.org Git - lyx.git/blobdiff - src/EmbeddedFiles.h
adjust
[lyx.git] / src / EmbeddedFiles.h
index 115a8e5b6c424fdc3756188f7ff6ee93418baebb..1d526973d3cbafd6abc1179aea28e4fc71fa48e6 100644 (file)
@@ -113,11 +113,14 @@ class ErrorList;
 class EmbeddedFile : public support::DocFileName
 {
 public:
+       EmbeddedFile() {};
+
        EmbeddedFile(std::string const & file, std::string const & inzip_name,
                bool embedded, Inset const * inset);
 
        /// filename in the zip file, usually the relative path
        std::string inzipName() const { return inzip_name_; }
+       void setInzipName(std::string name) { inzip_name_ = name; }
        /// embedded file, equals to temppath()/inzipName()
        std::string embeddedFile(Buffer const * buf) const;
        /// embeddedFile() or absFilename() depending on embedding status
@@ -155,6 +158,12 @@ public:
        bool extract(Buffer const * buf) const;
        /// update embedded file from external file, does not change embedding status
        bool updateFromExternalFile(Buffer const * buf) const;
+       ///
+       /// After the embedding status is changed, update all insets related
+       /// to this file item.
+       /// Because inset pointers may not be up to date, EmbeddedFiles::update()
+       /// would better be called before this function is called.
+       void updateInsets(Buffer const * buf) const;
 
 private:
        /// filename in zip file
@@ -191,7 +200,7 @@ public:
         * \param inset Inset pointer
         * \param inzipName suggested inzipname
         */
-       void registerFile(std::string const & filename, bool embed = false,
+       EmbeddedFile & registerFile(std::string const & filename, bool embed = false,
                Inset const * inset = 0,
                std::string const & inzipName = std::string());
 
@@ -220,6 +229,8 @@ public:
        ///
        bool readManifest(Lexer & lex, ErrorList & errorList);
        void writeManifest(std::ostream & os) const;
+       /// update all insets to use embedded files when embedding status is changed
+       void updateInsets() const;
 private:
        /// get a unique inzip name, a suggestion can be given.
        std::string const getInzipName(std::string const & name, std::string const & inzipName);