File indexing completed on 2024-04-21 16:33:50

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