X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBranchList.h;h=e3e18e1c71f49ba2ae9f305a43633052545318cd;hb=28be7d552f62cc02fa86d7f79201d089bfb2d7b5;hp=dd89a261d765e601e26d42c6e0c317a38766dc76;hpb=49070b4c004594c295b80c6612e368b62f5d44f3;p=lyx.git diff --git a/src/BranchList.h b/src/BranchList.h index dd89a261d7..e3e18e1c71 100644 --- a/src/BranchList.h +++ b/src/BranchList.h @@ -3,11 +3,25 @@ * \file BranchList.h * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. + * * \author Martin Vermeer * * Full author contact details are available in file CREDITS. - * - * + */ + +#ifndef BRANCHLIST_H +#define BRANCHLIST_H + +#include "ColorCode.h" + +#include "support/docstring.h" + +#include + + +namespace lyx { + +/** * \class Branch * * A class describing a 'branch', i.e., a named alternative for @@ -15,54 +29,46 @@ * other parts. * * A branch has a name, can either be selected or not, and uses a - * user-specifyable background colour. All these can be set and + * user-specifiable background colour. All these can be set and * queried. * * \class BranchList * * A class containing a vector of all defined branches within a - * document. Has methods for selecting or deselecting branches by + * document. It has methods for selecting or deselecting branches by * name, for outputting a '|'-separated string of all elements or only * the selected ones, and for adding and removing elements. */ - -#ifndef BRANCHES_H -#define BRANCHES_H - -#include "Color.h" - -#include "support/docstring.h" - -#include - - -namespace lyx { - - class Branch { public: /// Branch(); /// - docstring const & getBranch() const; + docstring const & branch() const; /// void setBranch(docstring const &); /// - bool getSelected() const; + bool isSelected() const; /** Select/deselect the branch. * \return true if the selection status changes. */ bool setSelected(bool); + /** If true, the branch name will be appended + * to the output file name. + */ + bool hasFileNameSuffix() const; + /// Select/deselect filename suffix property. + void setFileNameSuffix(bool); /// - RGBColor const & getColor() const; + RGBColor const & color() const; /// void setColor(RGBColor const &); /** * Set color from a string "#rrggbb". - * Use LColor:background if the string is no valid color. + * Use Color:background if the string is no valid color. * This ensures compatibility with LyX 1.4.0 that had the symbolic - * color "none" that was displayed as LColor:background. + * color "none" that was displayed as Color:background. */ void setColor(std::string const &); @@ -72,6 +78,8 @@ private: /// bool selected_; /// + bool filenameSuffix_; + /// RGBColor color_; }; @@ -85,6 +93,9 @@ public: /// BranchList() : separator_(from_ascii("|")) {} + /// + docstring separator() const { return separator_; } + /// bool empty() const { return list.empty(); } /// @@ -106,6 +117,14 @@ public: * \returns true if a branch is removed. */ bool remove(docstring const &); + /** rename an branch in list + * \returns true if renaming succeeded. + * if \p merge is true, the branch will be removed + * if a branch with the newname already exists. + */ + bool rename(docstring const &, docstring const &, bool const merge = false); + /// get the complete filename suffix + docstring getFileNameSuffix() const; private: /// @@ -114,20 +133,6 @@ private: docstring separator_; }; - -class BranchNamesEqual : public std::unary_function { -public: - BranchNamesEqual(docstring const & name) - : name_(name) {} - bool operator()(Branch const & branch) const - { - return branch.getBranch() == name_; - } -private: - docstring name_; -}; - - } // namespace lyx -#endif +#endif // BRANCHLIST_H