Submitted by: eseidel
Reviewed by: mjs
* kwq/KWQValueList.h:
(QValueList::find): KDOM support
(QValueList::constBegin): KDE compatibility
(QValueList::constEnd): KDE compatibility
* kwq/KWQValueListImpl.h:
* kwq/KWQValueListImpl.mm:
(KWQValueListImpl::findEqualNode): KDOM support
http://bugzilla.opendarwin.org/show_bug.cgi?id=3832
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9579
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2005-07-03 Eric Seidel <eseidel@apple.com>
+
+ Reviewed by mjs.
+
+ * kwq/KWQValueList.h:
+ (QValueList::find): KDOM support
+ (QValueList::constBegin): KDE compatibility
+ (QValueList::constEnd): KDE compatibility
+ * kwq/KWQValueListImpl.h:
+ * kwq/KWQValueListImpl.mm:
+ (KWQValueListImpl::findEqualNode): KDOM support
+ http://bugzilla.opendarwin.org/show_bug.cgi?id=3832
+
2005-07-03 Eric Seidel <eseidel@apple.com>
Reviewed by mjs.
template <class T> class QValueList {
public:
typedef QValueListIterator<T> Iterator;
+ typedef QValueListIterator<T> iterator;
typedef QValueListConstIterator<T> ConstIterator;
+ typedef QValueListConstIterator<T> const_iterator;
QValueList() : impl(deleteNode, copyNode) { }
Iterator prepend(const T &val) { return impl.prependNode(new QValueListNode<T>(val)); }
void remove(const T &val) { QValueListNode<T> node(val); impl.removeEqualNodes(&node, nodesEqual); }
uint contains(const T &val) const { QValueListNode<T> node(val); return impl.containsEqualNodes(&node, nodesEqual); }
+ Iterator find(const T &val) const { QValueListNode<T> node(val); return impl.findEqualNode(&node, nodesEqual); }
Iterator insert(Iterator iter, const T& val) { return impl.insert(iter.impl, new QValueListNode<T>(val)); }
Iterator remove(Iterator iter) { return impl.removeIterator(iter.impl); }
ConstIterator begin() const { return impl.begin(); }
ConstIterator end() const { return impl.end(); }
+ ConstIterator constBegin() const { return impl.begin(); }
+ ConstIterator constEnd() const { return impl.end(); }
ConstIterator fromLast() const { return impl.fromLast(); }
T& operator[] (uint index) { return ((QValueListNode<T> *)impl.nodeAt(index))->value; }
KWQValueListIteratorImpl prependNode(KWQValueListNodeImpl *node);
void removeEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *));
uint containsEqualNodes(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const;
+
+ KWQValueListIteratorImpl findEqualNode(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const;
KWQValueListIteratorImpl insert(const KWQValueListIteratorImpl &iterator, KWQValueListNodeImpl* node);
KWQValueListIteratorImpl removeIterator(KWQValueListIteratorImpl &iterator);
return contains;
}
+KWQValueListIteratorImpl KWQValueListImpl::findEqualNode(KWQValueListNodeImpl *node, bool (*equalFunc)(const KWQValueListNodeImpl *, const KWQValueListNodeImpl *)) const
+{
+ KWQValueListIteratorImpl it = begin();
+ KWQValueListIteratorImpl endIt = end();
+ while (it != endIt) {
+ if (equalFunc(node, it.node())) {
+ break;
+ }
+ it++;
+ }
+ return it;
+}
+
KWQValueListIteratorImpl KWQValueListImpl::insert(const KWQValueListIteratorImpl &iterator, KWQValueListNodeImpl *node)
{
copyOnWrite();