X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FBranchList.h;h=fc57d2478b16e506cd63fda85446f751431cef91;hb=32d281cba0a2e4d0e8425a34a1a8d1f5e7251412;hp=aaa5f15ecd548c5a8cc3bc2276a728d2b1b5cc6c;hpb=44cd0fc9a1687cc63911c7f98d978594458e7813;p=lyx.git diff --git a/src/BranchList.h b/src/BranchList.h index aaa5f15ecd..fc57d2478b 100644 --- a/src/BranchList.h +++ b/src/BranchList.h @@ -37,15 +37,17 @@ class Branch { public: /// - std::string const getBranch() const; + std::string const & getBranch() const; /// void setBranch(std::string const &); /// bool getSelected() const; + /** Select/deselect the branch. + * \return true if the selection status changes. + */ + bool setSelected(bool); /// - void setSelected(bool); - /// - std::string const getColor() const; + std::string const & getColor() const; /// void setColor(std::string const &); @@ -61,41 +63,33 @@ private: class BranchList { -public: - /// - BranchList() : separator_("|") {} - /// typedef std::list List; +public: + typedef List::const_iterator const_iterator; /// - void clear(); + BranchList() : separator_("|") {} + /// bool empty() { return list.empty(); } /// - bool size() const { return list.size(); } - /// - List::const_iterator begin() const { return list.begin(); } - /// - List::const_iterator end() const { return list.end(); } - /// - std::string getColor(std::string const &) const; - /// - void setColor(std::string const &, std::string const &); - /// Select/deselect multiple branches given in '|'-separated string - void setSelected(std::string const &, bool); - /// Add multiple branches to list - void add(std::string const &); - /// remove a branch from list by name - void remove(std::string const &); - /// return whether this branch is selected - bool selected(std::string const &) const; - /// return, as a '|'-separated string, all branch names - std::string allBranches() const; - /// - std::string allSelected() const; - /// - std::string const separator() const; + const_iterator begin() const { return list.begin(); } + const_iterator end() const { return list.end(); } + + /** \returns the Branch with \c name. If not found, returns 0. + */ + Branch * find(std::string const & name); + Branch const * find(std::string const & name) const; + + /** Add (possibly multiple (separated by separator())) branches to list + * \returns true if a branch is added. + */ + bool add(std::string const &); + /** remove a branch from list by name + * \returns true if a branch is removed. + */ + bool remove(std::string const &); private: /// @@ -104,4 +98,17 @@ private: std::string separator_; }; + +class BranchNamesEqual : public std::unary_function { +public: + BranchNamesEqual(std::string const & name) + : name_(name) {} + bool operator()(Branch const & branch) const + { + return branch.getBranch() == name_; + } +private: + std::string name_; +}; + #endif