X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSession.h;h=65bf19de1342be91495ff0c51c33813d25a191a8;hb=38c2cde0d8695ac5287bae218c4a33a2acf18ef8;hp=8074b56dd9128ce7712f693b02e34ef6ebf761a2;hpb=e30f3d76d2bee0011ceaeb5f0cc221156458cbad;p=lyx.git diff --git a/src/Session.h b/src/Session.h index 8074b56dd9..65bf19de13 100644 --- a/src/Session.h +++ b/src/Session.h @@ -16,7 +16,7 @@ #include "support/FileName.h" #include "support/types.h" -#include +#include #include #include @@ -148,12 +148,13 @@ public: /// struct FilePos { FilePos() : pit(0), pos(0) {} + support::FileName file; pit_type pit; pos_type pos; }; /// - typedef std::map FilePosMap; + typedef std::list FilePosList; public: /// @@ -165,13 +166,12 @@ public: /// void write(std::ostream & os) const; - /** add cursor position to the fname entry in the filepos map - @param fname file entry for which to save position information - @param pos position of the cursor when the BufferView is closed. + /** add cursor position to the fname entry in the filepos list + @param pos file name and position of the cursor when the BufferView is closed. */ - void save(support::FileName const & fname, FilePos const & pos); + void save(FilePos const & pos); - /** load saved cursor position from the fname entry in the filepos map + /** load saved cursor position from the fname entry in the filepos list @param fname file entry for which to load position information */ FilePos load(support::FileName const & fname) const; @@ -181,8 +181,8 @@ private: unsigned int const num_lastfilepos; - /// a map of file positions - FilePosMap lastfilepos; + /// a list of file positions + FilePosList lastfilepos; }; @@ -333,7 +333,10 @@ public: void write(std::ostream & os) const; /// - std::set & authFiles() { return auth_files_; } + bool find(std::string const & name) const; + + /// + void insert(std::string const & name); private: /// set of document files authorized for external conversion @@ -341,6 +344,36 @@ private: }; +class ShellEscapeSection : SessionSection +{ +public: + /// + explicit ShellEscapeSection() {}; + + /// + void read(std::istream & is); + + /// + void write(std::ostream & os) const; + + /// + bool find(std::string const & name) const; + + /// + bool findAuth(std::string const & name) const; + + /// + void insert(std::string const & name, bool auth = false); + + /// + void remove(std::string const & name); + +private: + /// set of document files authorized for external conversion + std::set shellescape_files_; +}; + + class Session { public: @@ -373,6 +406,10 @@ public: AuthFilesSection & authFiles() { return auth_files; } /// AuthFilesSection const & authFiles() const { return auth_files; } + /// + ShellEscapeSection & shellescapeFiles() { return shellescape_files; } + /// + ShellEscapeSection const & shellescapeFiles() const { return shellescape_files; } private: friend class LyX; @@ -402,6 +439,8 @@ private: LastCommandsSection last_commands; /// AuthFilesSection auth_files; + /// + ShellEscapeSection shellescape_files; }; /// This is a singleton class. Get the instance.