X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FSession.cpp;h=8bd1bc92de9f4e043c8d4eeffd8068d398c0defd;hb=cca78e3c8ae27431323746abd64f9d7db017099d;hp=a9b5e86f46af6ac30fcc457dbe85e6d8e9e23996;hpb=96ee270933fe88672b70eb22045b280bf9ee4d90;p=lyx.git diff --git a/src/Session.cpp b/src/Session.cpp index a9b5e86f46..8bd1bc92de 100644 --- a/src/Session.cpp +++ b/src/Session.cpp @@ -3,7 +3,7 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Bo Peng * * Full author contact details are available in file CREDITS. @@ -12,9 +12,10 @@ #include #include "Session.h" + #include "support/debug.h" -#include "support/Package.h" #include "support/filetools.h" +#include "support/Package.h" #include #include @@ -55,11 +56,11 @@ void LastFilesSection::read(istream & is) if (c == '[') break; getline(is, tmp); - if (tmp == "" || tmp[0] == '#' || tmp[0] == ' ' || !absolutePath(tmp)) + FileName const file(tmp); + if (tmp == "" || tmp[0] == '#' || tmp[0] == ' ' || !file.isAbsolute()) continue; // read lastfiles - FileName const file(tmp); if (file.exists() && !file.isDirectory() && lastfiles.size() < num_lastfiles) lastfiles.push_back(file); @@ -109,10 +110,10 @@ void LastOpenedSection::read(istream & is) if (c == '[') break; getline(is, tmp); - if (tmp == "" || tmp[0] == '#' || tmp[0] == ' ' || !absolutePath(tmp)) + FileName const file(tmp); + if (tmp == "" || tmp[0] == '#' || tmp[0] == ' ' || !file.isAbsolute()) continue; - FileName const file(tmp); if (file.exists() && !file.isDirectory()) lastopened.push_back(file); else @@ -290,96 +291,6 @@ BookmarksSection::Bookmark const & BookmarksSection::bookmark(unsigned int i) co } -void ToolbarSection::read(istream & is) -{ - string tmp; - do { - char c = is.peek(); - if (c == '[') - break; - getline(is, tmp); - if (tmp == "" || tmp[0] == '#' || tmp[0] == ' ') - continue; - - try { - // Read session info, saved as key/value pairs - // would better yell if pos returns npos - size_t pos = tmp.find_first_of(" = "); - // silently ignore lines without " = " - if (pos != string::npos) { - ToolbarItem item; - item.key = tmp.substr(0, pos); - int state; - int location; - istringstream value(tmp.substr(pos + 3)); - value >> state; - value >> location; - value >> item.info.posx; - value >> item.info.posy; - item.info.state = ToolbarInfo::State(state); - item.info.location = ToolbarInfo::Location(location); - toolbars.push_back(item); - } else - LYXERR(Debug::INIT, "LyX: Warning: Ignore toolbar info: " << tmp); - } catch (...) { - LYXERR(Debug::INIT, "LyX: Warning: unknown Toolbar info: " << tmp); - } - } while (is.good()); - // sort the toolbars by location, line and position - sort(toolbars.begin(), toolbars.end()); -} - - -void ToolbarSection::write(ostream & os) const -{ - os << '\n' << sec_toolbars << '\n'; - for (ToolbarList::const_iterator tb = toolbars.begin(); - tb != toolbars.end(); ++tb) { - os << tb->key << " = " - << static_cast(tb->info.state) << " " - << static_cast(tb->info.location) << " " - << tb->info.posx << " " - << tb->info.posy << '\n'; - } -} - - -ToolbarSection::ToolbarInfo & ToolbarSection::load(string const & name) -{ - for (ToolbarList::iterator tb = toolbars.begin(); - tb != toolbars.end(); ++tb) - if (tb->key == name) - return tb->info; - - // add a new item - ToolbarItem item; - item.key = name; - toolbars.push_back(item); - return toolbars.back().info; -} - - -bool operator<(ToolbarSection::ToolbarItem const & a, ToolbarSection::ToolbarItem const & b) -{ - ToolbarSection::ToolbarInfo lhs = a.info; - ToolbarSection::ToolbarInfo rhs = b.info; - // on if before off - if (lhs.state != rhs.state) - return static_cast(lhs.state) < static_cast(rhs.state); - // order of dock does not really matter - if (lhs.location != rhs.location) - return static_cast(lhs.location) < static_cast(rhs.location); - // if the same dock, the order depends on position - if (lhs.location == ToolbarSection::ToolbarInfo::TOP || - lhs.location == ToolbarSection::ToolbarInfo::BOTTOM) - return lhs.posy < rhs.posy || (lhs.posy == rhs.posy && lhs.posx < rhs.posx); - else if (lhs.location == ToolbarSection::ToolbarInfo::LEFT || - lhs.location == ToolbarSection::ToolbarInfo::RIGHT) - return lhs.posx < rhs.posx || (lhs.posx == rhs.posx && lhs.posy < rhs.posy); - return true; -} - - void SessionInfoSection::read(istream & is) { string tmp; @@ -469,8 +380,6 @@ void Session::readFile() lastFilePos().read(is); else if (tmp == sec_bookmarks) bookmarks().read(is); - else if (tmp == sec_toolbars) - toolbars().read(is); else if (tmp == sec_session) sessionInfo().read(is); else @@ -490,7 +399,6 @@ void Session::writeFile() const lastOpened().write(os); lastFilePos().write(os); bookmarks().write(os); - toolbars().write(os); sessionInfo().write(os); } else LYXERR(Debug::INIT, "LyX: Warning: unable to save Session: "