X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSession.h;h=5af5554d967a99df2cf5a372c7a3d7dbaed413ed;hb=19f5aa58aa55fe210c689052967ade0f943f82fb;hp=04299b2569286e4947edca102e27feaa8758d201;hpb=9cce351940ec3e46bb4bfe03717e3b3ac8420f63;p=lyx.git diff --git a/src/Session.h b/src/Session.h index 04299b2569..5af5554d96 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 @@ -64,10 +64,10 @@ public: explicit LastFilesSection(unsigned int num = 4); /// - void read(std::istream & is); + void read(std::istream & is) override; /// - void write(std::ostream & os) const; + void write(std::ostream & os) const override; /// Return lastfiles container (vector) LastFiles const lastFiles() const { return lastfiles; } @@ -119,10 +119,10 @@ public: public: /// - void read(std::istream & is); + void read(std::istream & is) override; /// - void write(std::ostream & os) const; + void write(std::ostream & os) const override; /// Return lastopened container (vector) LastOpened const getfiles() const { return lastopened; } @@ -148,30 +148,30 @@ 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: /// LastFilePosSection() : num_lastfilepos(100) {} /// - void read(std::istream & is); + void read(std::istream & is) override; /// - void write(std::ostream & os) const; + void write(std::ostream & os) const override; - /** 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; }; @@ -253,10 +253,10 @@ public: void clear(); /// - void read(std::istream & is); + void read(std::istream & is) override; /// - void write(std::ostream & os) const; + void write(std::ostream & os) const override; /** return bookmark list. Non-const container is used since bookmarks will be cleaned after use. @@ -283,10 +283,10 @@ public: /// LastCommandsSection(unsigned int num); /// - void read(std::istream & is); + void read(std::istream & is) override; /// - void write(std::ostream & os) const; + void write(std::ostream & os) const override; /// Return lastcommands container (vector) LastCommands const getcommands() const { return lastcommands; } @@ -320,6 +320,60 @@ private: }; +class AuthFilesSection : SessionSection +{ +public: + /// + explicit AuthFilesSection(); + + /// + void read(std::istream & is) override; + + /// + void write(std::ostream & os) const override; + + /// + 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) override; + + /// + void write(std::ostream & os) const override; + + /// + 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