]> git.lyx.org Git - lyx.git/blobdiff - src/Session.h
tex2lyx: support biblatex
[lyx.git] / src / Session.h
index 7fabfa8909c7fd9adc72aea2550f0517acd7a2df..31ffee8841bab4cb2ab98945058140ddbba2c8e9 100644 (file)
 #include "support/FileName.h"
 #include "support/types.h"
 
 #include "support/FileName.h"
 #include "support/types.h"
 
+#include <map>
 #include <string>
 #include <string>
-#include <deque>
 #include <vector>
 #include <vector>
-#include <map>
 
 /** This session file maintains
   1. the latest documents loaded (lastfiles)
 
 /** This session file maintains
   1. the latest documents loaded (lastfiles)
@@ -58,7 +57,7 @@ class LastFilesSection : SessionSection
 {
 public:
        ///
 {
 public:
        ///
-       typedef std::deque<support::FileName> LastFiles;
+       typedef std::vector<support::FileName> LastFiles;
 
 public:
        ///
 
 public:
        ///
@@ -70,10 +69,10 @@ public:
        ///
        void write(std::ostream & os) const;
 
        ///
        void write(std::ostream & os) const;
 
-       /// Return lastfiles container (deque)
+       /// Return lastfiles container (vector)
        LastFiles const lastFiles() const { return lastfiles; }
 
        LastFiles const lastFiles() const { return lastfiles; }
 
-       /** Insert #file# into the lastfile dequeue.
+       /** Insert #file# into the lastfile vector.
            This funtion inserts #file# into the last files list. If the file
            already exists it is moved to the top of the list, else exist it
            is placed on the top of the list. If the list is full the last
            This funtion inserts #file# into the last files list. If the file
            already exists it is moved to the top of the list, else exist it
            is placed on the top of the list. If the list is full the last
@@ -106,7 +105,17 @@ class LastOpenedSection : SessionSection
 {
 public:
        ///
 {
 public:
        ///
-       typedef std::vector<support::FileName> LastOpened;
+       struct LastOpenedFile {
+               LastOpenedFile() : file_name(), active(false) {}
+
+               LastOpenedFile(support::FileName file_name_, bool active_)
+                       : file_name(file_name_), active(active_) {}
+
+               support::FileName file_name;
+               bool active;
+       };
+       ///
+       typedef std::vector<LastOpenedFile> LastOpened;
 
 public:
        ///
 
 public:
        ///
@@ -121,7 +130,7 @@ public:
        /** add file to lastopened file list
            @param file filename to add
        */
        /** add file to lastopened file list
            @param file filename to add
        */
-       void add(support::FileName const & file);
+       void add(support::FileName const & file, bool active = false);
 
        /** clear lastopened file list
         */
 
        /** clear lastopened file list
         */
@@ -158,7 +167,7 @@ public:
 
        /** add cursor position to the fname entry in the filepos map
            @param fname file entry for which to save position information
 
        /** 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 file is closed.
+           @param pos position of the cursor when the BufferView is closed.
        */
        void save(support::FileName const & fname, FilePos const & pos);
 
        */
        void save(support::FileName const & fname, FilePos const & pos);
 
@@ -311,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:
 class Session
 {
 public:
@@ -339,6 +402,14 @@ public:
        LastCommandsSection & lastCommands() { return last_commands; }
        ///
        LastCommandsSection const & lastCommands() const { return last_commands; }
        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;
 
 private:
        friend class LyX;
@@ -366,12 +437,16 @@ private:
        BookmarksSection bookmarks_;
        ///
        LastCommandsSection last_commands;
        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();
 
 };
 
 /// This is a singleton class. Get the instance.
 /// Implemented in LyX.cpp.
 Session & theSession();
 
-} // lyx
+} // namespace lyx
 
 #endif
 
 #endif