X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSession.h;h=8e18885259b785970f3a98418459045a1382d6aa;hb=4056f0ddb150d0e5d60bc5941d51e365eed0ac86;hp=e395434d523c648ffcd4d6c888e3cb21b3904dff;hpb=f630be890494c849981e4fb52ea4740506e92bed;p=lyx.git diff --git a/src/Session.h b/src/Session.h index e395434d52..8e18885259 100644 --- a/src/Session.h +++ b/src/Session.h @@ -13,18 +13,15 @@ #ifndef SESSION_H #define SESSION_H -#include "support/filename.h" +#include "support/FileName.h" #include "support/types.h" -#include -#include - #include #include #include #include -// used by at least frontends/qt2/QPref.C +// used by at least frontends/qt4/GuiPref.cpp const long maxlastfiles = 20; /** This session file maintains @@ -36,11 +33,13 @@ const long maxlastfiles = 20; */ namespace lyx { -/** base class for all sections in the session file +/* base class for all sections in the session file */ -class SessionSection : boost::noncopyable { - +class SessionSection +{ public: + /// + SessionSection() {} /// virtual ~SessionSection() {} @@ -49,6 +48,11 @@ public: /// write to std::ostream virtual void write(std::ostream & os) const = 0; + +private: + /// uncopiable + SessionSection(SessionSection const &); + void operator=(SessionSection const &); }; @@ -135,7 +139,11 @@ class LastFilePosSection : SessionSection { public: /// - typedef boost::tuple FilePos; + struct FilePos { + FilePos() : pit(0), pos(0) {} + pit_type pit; + pos_type pos; + }; /// typedef std::map FilePosMap; @@ -154,7 +162,7 @@ public: @param fname file entry for which to save position information @param pos position of the cursor when the file is closed. */ - void save(support::FileName const & fname, FilePos pos); + void save(support::FileName const & fname, FilePos const & pos); /** load saved cursor position from the fname entry in the filepos map @param fname file entry for which to load position information @@ -182,7 +190,7 @@ public: /// top_id is determined when a bookmark is restored from session; and /// bottom_pit and bottom_pos are determined from top_id when a bookmark /// is save to session. (What a mess! :-) - /// + /// /// TODO: bottom level pit and pos will be replaced by StableDocIterator class Bookmark { public: @@ -203,7 +211,7 @@ public: : filename(f), bottom_pit(pit), bottom_pos(pos), top_id(id), top_pos(tpos) {} /// set bookmark top_id, this is because newly loaded bookmark /// may have zero par_id and par_pit can change during editing, see bug 3092 - void updatePos(pit_type pit, pos_type pos, int id) { + void updatePos(pit_type pit, pos_type pos, int id) { bottom_pit = pit; bottom_pos = pos; top_id = id; @@ -265,15 +273,13 @@ public: { public: /// - ToolbarInfo() : - state(ON), location(NOTSET), posx(0), posy(0) { } + ToolbarInfo() + : state(ON), location(NOTSET), posx(0), posy(0) + {} /// - ToolbarInfo(int s, int loc, int x=0, int y=0) : - state(static_cast(s)), - location(static_cast(loc)), - posx(x), - posy(y) - { } + //ToolbarInfo(int s, int loc, int x = 0, int y = 0) + // : state(State(s)), location(Location(loc)), posx(x), posy(y) + // {} public: enum State { @@ -301,11 +307,14 @@ public: /// y-position of the toolbar int posy; - + /// potentially, icons }; - typedef boost::tuple ToolbarItem; + struct ToolbarItem { + std::string key; + ToolbarInfo info; + }; /// info for each toolbar typedef std::vector ToolbarList; @@ -337,7 +346,8 @@ private: /// TOP < BOTTOM < LEFT < RIGHT /// Line at each side /// order in each line -bool operator< (ToolbarSection::ToolbarItem const & a, ToolbarSection::ToolbarItem const & b); +bool operator<(ToolbarSection::ToolbarItem const & a, + ToolbarSection::ToolbarItem const & b); class SessionInfoSection : SessionSection @@ -372,55 +382,43 @@ private: }; -class Session : boost::noncopyable { - +class Session +{ public: - /** Read the session file. - @param num length of lastfiles - */ + /// Read the session file. @param num length of lastfiles explicit Session(unsigned int num = 4); - - /** Write the session file. - */ + /// Write the session file. void writeFile() const; - /// LastFilesSection & lastFiles() { return last_files; } - /// LastFilesSection const & lastFiles() const { return last_files; } - /// LastOpenedSection & lastOpened() { return last_opened; } - /// LastOpenedSection const & lastOpened() const { return last_opened; } - /// LastFilePosSection & lastFilePos() { return last_file_pos; } - /// LastFilePosSection const & lastFilePos() const { return last_file_pos; } - /// BookmarksSection & bookmarks() { return bookmarks_; } - /// BookmarksSection const & bookmarks() const { return bookmarks_; } - /// ToolbarSection & toolbars() { return toolbars_; } - /// ToolbarSection const & toolbars() const { return toolbars_; } - /// SessionInfoSection & sessionInfo() { return session_info; } - /// SessionInfoSection const & sessionInfo() const { return session_info; } private: + /// uncopiable + Session(Session const &); + void operator=(Session const &); + /// file to save session, determined in the constructor. support::FileName session_file; @@ -433,19 +431,14 @@ private: /// LastFilesSection last_files; - /// LastOpenedSection last_opened; - /// LastFilePosSection last_file_pos; - /// BookmarksSection bookmarks_; - /// ToolbarSection toolbars_; - /// SessionInfoSection session_info; };