X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSession.h;h=65bf19de1342be91495ff0c51c33813d25a191a8;hb=38c2cde0d8695ac5287bae218c4a33a2acf18ef8;hp=04299b2569286e4947edca102e27feaa8758d201;hpb=9cce351940ec3e46bb4bfe03717e3b3ac8420f63;p=lyx.git diff --git a/src/Session.h b/src/Session.h index 04299b2569..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; }; @@ -320,6 +320,60 @@ private: }; +class AuthFilesSection : SessionSection +{ +public: + /// + explicit AuthFilesSection(); + + /// + void read(std::istream & is); + + /// + void write(std::ostream & os) const; + + /// + bool find(std::string const & name) const; + + /// + void insert(std::string const & name); + +private: + /// set of document files authorized for external conversion + std::set auth_files_; +}; + + +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: @@ -348,6 +402,14 @@ public: LastCommandsSection & lastCommands() { return last_commands; } /// LastCommandsSection const & lastCommands() const { return last_commands; } + /// + 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; @@ -375,12 +437,16 @@ private: BookmarksSection bookmarks_; /// LastCommandsSection last_commands; + /// + AuthFilesSection auth_files; + /// + ShellEscapeSection shellescape_files; }; /// This is a singleton class. Get the instance. /// Implemented in LyX.cpp. Session & theSession(); -} // lyx +} // namespace lyx #endif