X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSession.h;h=5af5554d967a99df2cf5a372c7a3d7dbaed413ed;hb=19f5aa58aa55fe210c689052967ade0f943f82fb;hp=f471f4d28e06e70c9bc083b26dcf6a40de650012;hpb=830eb234bebea1f58170a38e17610c2d57e63719;p=lyx.git diff --git a/src/Session.h b/src/Session.h index f471f4d28e..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; } @@ -327,13 +327,16 @@ public: explicit AuthFilesSection(); /// - void read(std::istream & is); + void read(std::istream & is) override; /// - void write(std::ostream & os) const; + void write(std::ostream & os) const override; /// - 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) 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: @@ -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,12 +439,14 @@ private: 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