]> git.lyx.org Git - lyx.git/blobdiff - src/Session.h
Use << for raising 2 to power instead of ^
[lyx.git] / src / Session.h
index 04299b2569286e4947edca102e27feaa8758d201..65bf19de1342be91495ff0c51c33813d25a191a8 100644 (file)
@@ -16,7 +16,7 @@
 #include "support/FileName.h"
 #include "support/types.h"
 
-#include <map>
+#include <list>
 #include <string>
 #include <vector>
 
@@ -148,12 +148,13 @@ public:
        ///
        struct FilePos {
                FilePos() : pit(0), pos(0) {}
+               support::FileName file;
                pit_type pit;
                pos_type pos;
        };
 
        ///
-       typedef std::map<support::FileName, FilePos> FilePosMap;
+       typedef std::list<FilePos> 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<std::string> 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<std::string> 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