#include "support/FileName.h"
#include "support/types.h"
-#include <map>
+#include <list>
#include <string>
#include <vector>
///
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:
///
///
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;
unsigned int const num_lastfilepos;
- /// a map of file positions
- FilePosMap lastfilepos;
+ /// a list of file positions
+ FilePosList lastfilepos;
};
};
+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:
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;
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