X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBranchList.cpp;h=2afc765a3d53aba2b4d04a14f03c57a3d07f0015;hb=2098f1d8c20d51e63e670bcdc9da8996068975bf;hp=a593c5478fc91e9b421537f6cc849b32b2590238;hpb=e5ae1a4b75ee4ac162db9d1b254968d2072938c6;p=lyx.git diff --git a/src/BranchList.cpp b/src/BranchList.cpp index a593c5478f..2afc765a3d 100644 --- a/src/BranchList.cpp +++ b/src/BranchList.cpp @@ -4,6 +4,7 @@ * Licence details can be found in the file COPYING. * * \author Martin Vermeer + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ @@ -15,6 +16,8 @@ #include "frontends/Application.h" +#include "support/lstrings.h" + #include using namespace std; @@ -39,7 +42,8 @@ private: } -Branch::Branch() : selected_(false) +Branch::Branch() + : selected_(false), filenameSuffix_(false) { // no theApp() with command line export if (theApp()) @@ -74,6 +78,18 @@ bool Branch::setSelected(bool b) } +bool Branch::hasFilenameSuffix() const +{ + return filenameSuffix_; +} + + +void Branch::setFilenameSuffix(bool b) +{ + filenameSuffix_ = b; +} + + RGBColor const & Branch::color() const { return color_; @@ -132,6 +148,7 @@ bool BranchList::add(docstring const & s) Branch br; br.setBranch(name); br.setSelected(false); + br.setFilenameSuffix(false); list.push_back(br); } if (j == docstring::npos) @@ -150,4 +167,36 @@ bool BranchList::remove(docstring const & s) } +bool BranchList::rename(docstring const & oldname, + docstring const & newname, bool const merge) +{ + if (newname.empty()) + return false; + if (find_if(list.begin(), list.end(), + BranchNamesEqual(newname)) != list.end()) { + // new name already taken + if (merge) + return remove(oldname); + return false; + } + + Branch * branch = find(oldname); + if (!branch) + return false; + branch->setBranch(newname); + return true; +} + + +docstring BranchList::getFilenameSuffix() const +{ + docstring result; + List::const_iterator it = list.begin(); + for (; it != list.end(); ++it) { + if (it->isSelected() && it->hasFilenameSuffix()) + result += "-" + it->branch(); + } + return support::subst(result, from_ascii("/"), from_ascii("_")); +} + } // namespace lyx