#include "support/FileName.h"
#include "support/types.h"
-#include <map>
+#include <list>
#include <string>
#include <vector>
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; }
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; }
///
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:
///
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;
unsigned int const num_lastfilepos;
- /// a map of file positions
- FilePosMap lastfilepos;
+ /// a list of file positions
+ FilePosList lastfilepos;
};
typedef std::vector<Bookmark> BookmarkList;
public:
- /// constructor, set max_bookmarks
- /// allow 9 regular bookmarks, bookmark 0 is temporary
- BookmarksSection() : bookmarks(10), max_bookmarks(9) {}
+ ///
+ BookmarksSection() : bookmarks(max_bookmarks + 1) {}
/// Save the current position as bookmark
void save(support::FileName const & fname, pit_type bottom_pit, pos_type bottom_pos,
bool hasValid() const;
///
- unsigned int size() const { return max_bookmarks; }
+ unsigned int size() const { return bookmarks.size(); }
/// clear all bookmarks
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.
*/
BookmarkList & load() { return bookmarks; }
+ ///
+ typedef std::vector<std::pair<unsigned int, pos_type>> BookmarkPosList;
+
+ /// return a list of bookmarks and position for this paragraph
+ BookmarkPosList bookmarksInPar(support::FileName const & fn, int par_id) const;
+
private:
+ /// allow 9 regular bookmarks, bookmark 0 is temporary
+ unsigned int const max_bookmarks = 9;
+
/// a list of bookmarks
BookmarkList bookmarks;
- ///
- unsigned int const max_bookmarks;
};
///
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; }
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<std::string> & 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
};
+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<std::string> shellescape_files_;
+};
+
+
class Session
{
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;
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