File indexing completed on 2024-04-14 15:52:43
0001 /* 0002 This file is part of the Okteta Core library, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2007, 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_BOOKMARKABLE_HPP 0010 #define OKTETA_BOOKMARKABLE_HPP 0011 0012 // Qt 0013 #include <QtPlugin> 0014 0015 template <class T> class QVector; 0016 0017 namespace Okteta { 0018 0019 class BookmarksConstIterator; 0020 class Bookmark; 0021 // interface to a list of bookmarks, sorted by the offset 0022 // 0023 class Bookmarkable 0024 { 0025 public: 0026 virtual ~Bookmarkable(); 0027 0028 public: // set/action 0029 virtual void addBookmarks(const QVector<Okteta::Bookmark>& bookmarks) = 0; 0030 virtual void removeBookmarks(const QVector<Okteta::Bookmark>& bookmarks) = 0; 0031 virtual void removeAllBookmarks() = 0; 0032 virtual void setBookmark(unsigned int index, const Okteta::Bookmark& bookmark) = 0; 0033 0034 public: // get 0035 virtual Okteta::BookmarksConstIterator createBookmarksConstIterator() const = 0; 0036 // virtual BookmarksMutableIterator createBookmarksMutableIterator() const = 0; 0037 virtual const Okteta::Bookmark& bookmarkAt(unsigned int index) const = 0; 0038 virtual const Okteta::Bookmark& bookmarkFor(int offset) const = 0; 0039 virtual bool containsBookmarkFor(int offset) const = 0; 0040 virtual unsigned int bookmarksCount() const = 0; 0041 0042 public: // signal 0043 // TODO: use also QVector<int> for added? 0044 virtual void bookmarksAdded(const QVector<Okteta::Bookmark>& bookmarks) = 0; 0045 virtual void bookmarksRemoved(const QVector<Okteta::Bookmark>& bookmarks) = 0; 0046 virtual void bookmarksModified(const QVector<int>& indizes) = 0; 0047 virtual void bookmarksModified(bool modified) = 0; 0048 }; 0049 0050 inline Bookmarkable::~Bookmarkable() = default; 0051 0052 } 0053 0054 Q_DECLARE_INTERFACE(Okteta::Bookmarkable, "org.kde.okteta.bookmarkable/1.0") 0055 0056 #endif