X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FIndicesList.cpp;h=66aa06bfc07562e5386b703576b0fa6e7a33ae7f;hb=747afa36cdf89fd5d0451ba2555fdb96e7c6a69d;hp=5f5a1fe387b938870c6177170e118409c5faf80d;hpb=9afc001fc518dd639103ffd1e5d22aaa52c117bf;p=lyx.git diff --git a/src/IndicesList.cpp b/src/IndicesList.cpp index 5f5a1fe387..66aa06bfc0 100644 --- a/src/IndicesList.cpp +++ b/src/IndicesList.cpp @@ -25,42 +25,6 @@ using namespace lyx::support; namespace lyx { -namespace { - -class IndexNamesEqual : public std::unary_function -{ -public: - IndexNamesEqual(docstring const & name) - : name_(name) - {} - - bool operator()(Index const & index) const - { - return index.index() == name_; - } -private: - docstring name_; -}; - - -class IndexHasShortcut : public std::unary_function -{ -public: - IndexHasShortcut(docstring const & shortcut) - : shortc_(shortcut) - {} - - bool operator()(Index const & index) const - { - return index.shortcut() == shortc_; - } -private: - docstring shortc_; -}; - -} // namespace - - ///////////////////////////////////////////////////////////////////// // // Index @@ -136,10 +100,20 @@ void Index::setColor(string const & str) ///////////////////////////////////////////////////////////////////// +namespace{ + +std::function IndexNameIs(docstring const & name) +{ + return [name](Index const & idx){ return idx.index() == name; }; +} + +} + + Index * IndicesList::find(docstring const & name) { List::iterator it = - find_if(list.begin(), list.end(), IndexNamesEqual(name)); + find_if(list.begin(), list.end(), IndexNameIs(name)); return it == list.end() ? nullptr : &*it; } @@ -147,15 +121,25 @@ Index * IndicesList::find(docstring const & name) Index const * IndicesList::find(docstring const & name) const { List::const_iterator it = - find_if(list.begin(), list.end(), IndexNamesEqual(name)); + find_if(list.begin(), list.end(), IndexNameIs(name)); return it == list.end() ? nullptr : &*it; } +namespace { + +std::function IndexShortcutIs(docstring const & sc) +{ + return [sc](Index const & idx){ return idx.shortcut() == sc; }; +} + +} // namespace + + Index * IndicesList::findShortcut(docstring const & shortcut) { List::iterator it = - find_if(list.begin(), list.end(), IndexHasShortcut(shortcut)); + find_if(list.begin(), list.end(), IndexShortcutIs(shortcut)); return it == list.end() ? nullptr : &*it; } @@ -163,7 +147,7 @@ Index * IndicesList::findShortcut(docstring const & shortcut) Index const * IndicesList::findShortcut(docstring const & shortcut) const { List::const_iterator it = - find_if(list.begin(), list.end(), IndexHasShortcut(shortcut)); + find_if(list.begin(), list.end(), IndexShortcutIs(shortcut)); return it == list.end() ? nullptr : &*it; } @@ -180,9 +164,7 @@ bool IndicesList::add(docstring const & n, docstring const & s) else name = n.substr(i, j - i); // Is this name already in the list? - bool const already = - find_if(list.begin(), list.end(), - IndexNamesEqual(name)) != list.end(); + bool const already = find(name); if (!already) { added = true; Index in; @@ -220,7 +202,7 @@ bool IndicesList::addDefault(docstring const & n) bool IndicesList::remove(docstring const & s) { size_t const size = list.size(); - list.remove_if(IndexNamesEqual(s)); + list.remove_if(IndexNameIs(s)); return size != list.size(); } @@ -230,8 +212,7 @@ bool IndicesList::rename(docstring const & oldname, { if (newname.empty()) return false; - if (find_if(list.begin(), list.end(), - IndexNamesEqual(newname)) != list.end()) + if (find(newname)) // new name already taken return false;