using namespace std;
+
namespace lyx {
namespace {
-class BranchNamesEqual : public std::unary_function<Branch, bool> {
+
+class BranchNamesEqual : public std::unary_function<Branch, bool>
+{
public:
- BranchNamesEqual(docstring const & name)
- : name_(name) {}
+ BranchNamesEqual(docstring const & name) : name_(name) {}
+
bool operator()(Branch const & branch) const
{
- return branch.getBranch() == name_;
+ return branch.branch() == name_;
}
private:
docstring name_;
}
-docstring const & Branch::getBranch() const
+docstring const & Branch::branch() const
{
return branch_;
}
}
-bool Branch::getSelected() const
+bool Branch::isSelected() const
{
return selected_;
}
}
-RGBColor const & Branch::getColor() const
+RGBColor const & Branch::color() const
{
return color_;
}
bool BranchList::add(docstring const & s)
{
bool added = false;
- docstring::size_type i = 0;
+ size_t i = 0;
while (true) {
- docstring::size_type const j = s.find_first_of(separator_, i);
+ size_t const j = s.find_first_of(separator_, i);
docstring name;
if (j == docstring::npos)
name = s.substr(i);
}
+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;
+}
+
+
} // namespace lyx