File indexing completed on 2024-03-24 05:55:59
0001 /* 0002 This file is part of the Okteta Core library, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2009 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #ifndef OKTETA_BOOKMARKSCONSTITERATOR_HPP 0010 #define OKTETA_BOOKMARKSCONSTITERATOR_HPP 0011 0012 // lib 0013 #include "bookmarksconstiteratoradapter.hpp" 0014 #include "oktetacore_export.hpp" 0015 // Qt 0016 #include <QExplicitlySharedDataPointer> 0017 0018 namespace Okteta { 0019 0020 class OKTETACORE_EXPORT BookmarksConstIterator 0021 { 0022 public: 0023 explicit BookmarksConstIterator(BookmarksConstIteratorAdapter* adapter = nullptr); 0024 BookmarksConstIterator(const BookmarksConstIterator&) = default; 0025 0026 ~BookmarksConstIterator() = default; 0027 0028 BookmarksConstIterator& operator=(const BookmarksConstIterator&) = default; 0029 0030 public: 0031 bool hasList() const; 0032 0033 public: 0034 bool hasNext() const; 0035 bool hasPrevious() const; 0036 const Okteta::Bookmark& peekNext() const; 0037 const Okteta::Bookmark& peekPrevious() const; 0038 0039 public: 0040 bool findNext(const Okteta::Bookmark& bookmark); 0041 bool findPrevious(const Okteta::Bookmark& bookmark); 0042 bool findNextFrom(unsigned int offset); 0043 bool findPreviousFrom(unsigned int offset); 0044 const Okteta::Bookmark& next(); 0045 const Okteta::Bookmark& previous(); 0046 void toBack(); 0047 void toFront(); 0048 0049 private: 0050 QExplicitlySharedDataPointer<BookmarksConstIteratorAdapter> mAdapter; 0051 }; 0052 0053 inline BookmarksConstIterator::BookmarksConstIterator(BookmarksConstIteratorAdapter* adapter) : mAdapter(adapter) {} 0054 0055 inline bool BookmarksConstIterator::hasList() const { return mAdapter; } 0056 0057 inline bool BookmarksConstIterator::hasNext() const { return mAdapter->hasNext(); } 0058 inline bool BookmarksConstIterator::hasPrevious() const { return mAdapter->hasPrevious(); } 0059 inline const Okteta::Bookmark& BookmarksConstIterator::peekNext() const { return mAdapter->peekNext(); } 0060 inline const Okteta::Bookmark& BookmarksConstIterator::peekPrevious() const { return mAdapter->peekPrevious(); } 0061 0062 inline bool BookmarksConstIterator::findNext(const Okteta::Bookmark& bookmark) { return mAdapter->findNext(bookmark); } 0063 inline bool BookmarksConstIterator::findPrevious(const Okteta::Bookmark& bookmark) { return mAdapter->findPrevious(bookmark); } 0064 inline bool BookmarksConstIterator::findNextFrom(unsigned int offset) { return mAdapter->findNextFrom(offset); } 0065 inline bool BookmarksConstIterator::findPreviousFrom(unsigned int offset) { return mAdapter->findPreviousFrom(offset); } 0066 inline const Okteta::Bookmark& BookmarksConstIterator::next() { return mAdapter->next(); } 0067 inline const Okteta::Bookmark& BookmarksConstIterator::previous() { return mAdapter->previous(); } 0068 inline void BookmarksConstIterator::toBack() { mAdapter->toBack(); } 0069 inline void BookmarksConstIterator::toFront() { mAdapter->toFront(); } 0070 0071 } 0072 0073 #endif